Heim > Artikel > Betrieb und Instandhaltung > Was ist domänenübergreifend und wie kann man es lösen?
Ich glaube, viele Leute haben von Cross-Domain gehört, aber viele Leute wissen nicht, was Cross-Domain bedeutet. Lassen Sie uns also erklären, was Cross-Domain ist und wie man es löst.
1: Was ist domänenübergreifend
Domänenübergreifend bedeutet, dass der Browser keine Skripte von anderen Websites ausführen kann. Dies wird durch die Same-Origin-Richtlinie des Browsers verursacht, bei der es sich um eine vom Browser für JavaScript implementierte Sicherheitsbeschränkung handelt. Wenn ein Browser Ressourcen von einer Webseite in einem Domänennamen zu einem anderen Domänennamen anfordert, wird jeder Unterschied im Domänennamen, Port oder Protokoll als domänenübergreifend betrachtet.
Zwei: So lösen Sie domänenübergreifende Probleme
1. 1. JSONP (JSON mit Padding: Padding JSON), 1 der Anwendungsmethoden von JSON Eine neue Methode,
Der Unterschied zwischen JSON und JSONP:
1. JSON gibt eine Datenzeichenfolge zurück, während JSONP Skriptcode (einschließlich eines Funktionsaufrufs)
2. JSONP unterstützt nur Get-Anfragen und keine Post-Anfragen (ähnlich dem Hinzufügen eines Skript-Tags zur Seite und dem Auslösen einer Anfrage für die angegebene Adresse über das src-Attribut, damit es möglich ist nur eine Get-Anfrage sein) 2. Nginx-Reverse-Proxy: www.baidu.com/index.html muss www.sina.com/server.php aufrufen, Sie können eine schreiben Schnittstelle www.baidu.com/server.php, von Diese Schnittstelle ruft www.sina.com/server.php im Backend auf, ruft den Rückgabewert ab und gibt ihn dann an index.html zurück3 headerheader auf der PHP-Seite (' Access-Control-Allow-Origin:*'); //Zugriff von allen Quellen zulassen header ('Access-Control-Allow-Method: POST,GET'); //Zugriffsmethode zulassen4Domain-übergreifend ist in zwei Typen unterteilt: Zum einen kann xhr nicht auf Dokumente aus verschiedenen Quellen zugreifen Das andere ist, dass verschiedene Fenster nicht miteinander interagieren können. document.domain löst hauptsächlich die zweite Situation und kann nur auf den Fall angewendet werden, dass die Hauptdomäne gleich und die Unterdomänen unterschiedlich sind
Die Einstellung von document.domain ist begrenzt. Wir können document.domain nur auf sich selbst oder eine übergeordnete Domäne einer höheren Ebene festlegen, und die primäre Domäne muss dieselbe sein. Beispiel: Die document.domain eines Dokuments in a.b.example.com kann auf a.b.example.com, b.example.com oder example.com festgelegt werden, aus diesem Grund kann sie jedoch nicht auf c.a.b.example.com festgelegt werden ist die aktuelle Die Unterdomäne der Domäne kann nicht auf baidu.com festgelegt werden, da die Hauptdomäne nicht mehr dieselbe ist.
5, window.name Wichtige Punkte: window.name teilt einen window.name im Lebenszyklus der Seite
Kompatibilität: alle Browser unterstützen
Vorteile:
Die einfachste Nutzung von Browserfunktionen zum Übertragen von Daten zwischen verschiedenen Domänen.
Es ist keine besondere Vorbereitung von Front-End und Backend erforderlich.
Nachteile:
Größenbeschränkung: Die maximale Größe von window.name beträgt etwa 2 MB und verschiedene Browser haben unterschiedliche Konventionen.
Sicherheit: Alle Fenster auf der aktuellen Seite können geändert werden, was sehr unsicher ist;
Datentyp: Die übergebenen Daten können nur auf Zeichenfolgen beschränkt werden. Wenn es sich um ein Objekt oder etwas anderes handelt, werden sie automatisch in eine Zeichenfolge umgewandelt.
6, postMessage
Wichtige Punkte:
postMessage ist ein neues Konzept, das von h5 eingeführt wurde und nun weiter gefördert und weiterentwickelt wird. Es hat eine Reihe von Kapselungen durchgeführt , wir können es über window.postMessage verwenden und die gesendeten Nachrichten überwachen;
Kompatibilität: Die mobile Version kann bedenkenlos verwendet werden, aber die PC-Version muss heruntergestuft werden
Vorteile
Sie können domänenübergreifend ohne Backend-Eingriffe erreichen. Nur eine Funktion plus zwei Parameter (URL anfordern, Daten senden); >
Das obige ist der detaillierte Inhalt vonWas ist domänenübergreifend und wie kann man es lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!