Heim >Web-Frontend >js-Tutorial >js legt document.domain fest, um domänenübergreifende Aufmerksamkeitspunktanalyse_Javascript-Fähigkeiten zu erlangen

js legt document.domain fest, um domänenübergreifende Aufmerksamkeitspunktanalyse_Javascript-Fähigkeiten zu erlangen

WBOY
WBOYOriginal
2016-05-16 15:58:091534Durchsuche

Das Beispiel dieses Artikels analysiert die Punkte, die beim Festlegen von document.domain in js zu beachten sind, um eine domänenübergreifende Implementierung zu erreichen. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

document.domain
Wird verwendet, um den Domänennamen der aktuellen Webseite abzurufen.
Geben Sie beispielsweise in die Adressleiste ein:

Code kopieren Der Code lautet wie folgt:
javascript:alert(document.domain); //www.jb51. net

Wir können dem Attribut document.domain auch einen Wert zuweisen, es gibt jedoch Einschränkungen. Sie können ihn nur dem aktuellen Domänennamen oder dem Basisdomänennamen zuweisen.
Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
javascript:alert(document.domain = "jb51.net"); //jb51 .net
javascript:alert(document.domain = "www.jb51.net"); //www.jb51.net

Die oben genannten Zuweisungen sind alle erfolgreich, da www.jb51.net der aktuelle Domänenname und jb51.net der grundlegende Domänenname ist.

Die folgende Zuweisung führt jedoch zu einem Fehler „Ungültiger Parameter“:

Code kopieren Der Code lautet wie folgt:
javascript:alert(document.domain = "cctv.net"); //Parameter ungültig
javascript:alert(document.domain = "www.jb51.net"); //Ungültiger Parameter

Da cctv.net und www.jb51.net weder der aktuelle Domänenname noch der Basisdomänenname des aktuellen Domänennamens sind, treten Fehler auf.
Dadurch soll verhindert werden, dass jemand document.domain in böswilliger Absicht ändert, um domänenübergreifende Daten zu stehlen.

Verwenden Sie document.domain, um domänenübergreifend zu erreichen:

Voraussetzung: Diese beiden Domainnamen müssen zum gleichen Basis-Domainnamen gehören und die verwendeten Protokolle und Ports müssen konsistent sein, sonst kann document.domain nicht für Cross-Domain verwendet werden

Javascript verhindert aus Sicherheitsgründen die Zusammenarbeit von zwei oder mehr Seiten aus unterschiedlichen Domänen.
Seiten derselben Domain funktionieren problemlos miteinander.

Zum Beispiel wird in einer Webseite (a.html) von aaa.com eine Webseite (b.html) in bbb.com mithilfe von iframe eingeführt.
Derzeit ist der Inhalt von b.html in a.html sichtbar, es kann jedoch nicht mit Javascript bedient werden. Da die beiden Seiten zu unterschiedlichen Domänen gehören, prüft js, ob die Domänen der beiden Seiten gleich sind. Wenn sie gleich sind, wird der Vorgang zugelassen.
Es ist unmöglich, a.html und b.html mithilfe von JS in dieselbe Domäne zu ändern. Weil ihre Basisdomänennamen nicht gleich sind. (Wenn Sie JS zwingen, sie in gleiche Felder umzuwandeln, wird derselbe „Fehler wegen ungültiger Parameter“ wie oben gemeldet)

Wenn Sie also eine andere Webseite in aaa.com in a.html einfügen, gibt es kein Problem, da die Domänen gleich sind.

Es gibt eine andere Situation, zwei Subdomains:

aaa.xxx.com
bbb.xxx.com

Eine Webseite (a.html) in aaa leitet eine Webseite (b.html) in bbb ein,
Derzeit kann der Inhalt in b.html nicht in a.html manipuliert werden.
Da die document.domain unterschiedlich ist, ist die eine aaa.xxx.com und die andere bbb.xxx.com.

Zu diesem Zeitpunkt können wir die Domäne der beiden Seiten über Javascript auf dieselbe ändern,
Es müssen sowohl a.html als auch b.html hinzugefügt werden:

Code kopieren Der Code lautet wie folgt:
document.domain = "xxx.com";

Auf diese Weise können die beiden Seiten miteinander interagieren. Das heißt, es wird „domänenübergreifend“ zwischen denselben Basisdomänennamen realisiert.

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn