Dieses Mal werde ich Ihnen zeigen, wie Sie die domänenübergreifende Webentwicklung nutzen. Welche Vorsichtsmaßnahmen gibt es für die domänenübergreifende Nutzung in der Webentwicklung?
Im Prozess der Webentwicklung wird jeder mit domänenübergreifenden Themen in Berührung kommen. Viele Menschen wissen nicht, was domänenübergreifend ist und wie man domänenübergreifende Probleme in der Webentwicklung löst. Der folgende Artikel gibt Ihnen eine detaillierte Einführung dazu. Wenn Sie interessiert sind, erfahren Sie mehr über domänenübergreifende und domänenübergreifende Lösungen.
Was ist domänenübergreifend?
Das Konzept lautet wie folgt: Solange Protokoll, Domänenname und Port unterschiedlich sind, werden sie als unterschiedliche Domänen betrachtet
Im Folgenden finden Sie eine detaillierte Erläuterung der spezifischen domänenübergreifenden Situation
Beschreibung | Ob die Kommunikation zugelassen werden soll | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
http://www.a.com/a.js, http://www.a.com/b.js | Unter demselben Domainnamen | Erlauben | |||||||||||||||||||||||||||
http://www.a.com/lab/a.js, http://www.a.com/script/b.js | Verschiedene Ordner unter demselben Domänennamen | Erlauben | |||||||||||||||||||||||||||
http://www.a.com:8000/a.js, http://www.a.com/b.js | Gleicher Domainname, unterschiedliche Ports | Nicht erlaubt | |||||||||||||||||||||||||||
http://www.a.com/a.js、https://
|
Gleicher Domainname, unterschiedliche Protokolle | Nicht erlaubt | |||||||||||||||||||||||||||
http://www.a.com/a.js, http://70.32.92.74/b.js | Domänenname und entsprechende IP-Adresse des Domänennamens | Nicht erlaubt | |||||||||||||||||||||||||||
http://www.a.com/a.js, http://script.a.com/b.js | Die Hauptdomäne ist dieselbe, aber die Unterdomänen sind unterschiedlich | Nicht erlaubt (der Zugriff auf Cookies ist in diesem Fall nicht zulässig) | |||||||||||||||||||||||||||
http://www.a.com/a.js, http://a.com/b.js | Gleicher Domänenname, unterschiedliche Domänennamen der zweiten Ebene (wie oben) | Nicht erlaubt (der Zugriff auf Cookies ist in diesem Fall nicht zulässig) | |||||||||||||||||||||||||||
http://www.cnblogs.com/a.js, http://www.a.com/b.js | Verschiedene Domainnamen | Nicht erlaubt |
1. document.domain domänenübergreifend
Prinzip: Seiten unter demselben Hauptdomänennamen, aber unterschiedlichen Subdomänennamen können auf document.domain
gesetzt werden, um sie zur gleichen Domäne zu machen
Einschränkungen: Dokumente in derselben Domäne bieten Interoperabilität zwischen Seiten und die Iframe-Seite muss geladen werden
Seiten unter den folgenden Domänennamen können über document.domain domänenübergreifend interoperiert werden: http://a.com/foo, http://b.a.com/bar, http://c.a.com/bar. Die Seiteninteroperation kann jedoch nur in Form einer Seitenverschachtelung durchgeführt werden. Beispielsweise kann die gemeinsame Iframe-Methode die Seitenverschachtelung abschließen
// URL http://a.com/foo var ifr = document.createElement('iframe'); ifr.src = 'http://b.a.com/bar'; ifr.onload = function(){ var ifrdoc = ifr.contentDocument || ifr.contentWindow.document; ifrdoc.getElementsById("foo").innerHTML); }; ifr.style.display = 'none'; document.body.appendChild(ifr);
Die URL, unter der sich der obige Code befindet, ist http://a.com/foo, und der DOM-Zugriff auf http://b.a.com/bar erfordert, dass letztere document.domain eine Ebene höher setzt
// URL http://b.a.com/bar document.domain = 'a.com'
document.domain kann nur von einer Subdomain auf die Hauptdomain umgestellt werden und auf andere Domainnamen ist der folgende Fehler nicht zulässig:
Nicht abgefangene DOMException: Die Eigenschaft „domain“ für „Document“ konnte nicht festgelegt werden: „baidu.com“ ist kein Suffix von „b.a.com“
2. Tags mit src
Prinzip: Alle HTML-Tags mit dem src-Attribut können domänenübergreifend sein, einschließlich ,
Einschränkung: Es muss ein DOM-Objekt erstellt werden, das nur für die GET-Methode
verwendet werden kann
Fügen Sie ein HTML-Tag mit dem src-Attribut in document.body
hinzu. Auf die URL, auf die der src-Attributwert verweist, wird mit der GET-Methode zugegriffen. Dieser Zugriff kann domänenübergreifend erfolgen
Tatsächlich kann das -Tag des Stylesheets auch domänenübergreifend sein. Solange das HTML-Tag src oder href hat, verfügt es über domänenübergreifende Funktionen
Verschiedene HTML-Tags senden HTTP-Anfragen zu unterschiedlichen Zeiten. Beispielsweise sendet eine Anfrage, wenn das src-Attribut geändert wird, während script, iframe, link[rel=stylesheet]
erst nach dem Hinzufügen zum DOM-Baum eine HTTP-Anfrage sendet:
var img = new Image(); img.src = 'http://some/picture'; // 发送HTTP请求 var ifr = $('<iframe>', {src: 'http://b.a.com/bar'}); $('body').append(ifr); // 发送HTTP请求
3. JSONP
Prinzip: