Heim >Betrieb und Instandhaltung >Windows-Betrieb und -Wartung >Was ist domänenübergreifend und wie kann man es lösen?

Was ist domänenübergreifend und wie kann man es lösen?

云罗郡主
云罗郡主Original
2019-02-22 11:31:1054933Durchsuche

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ück

3 header

header auf der PHP-Seite (' Access-Control-Allow-Origin:*'); //Zugriff von allen Quellen zulassen

header ('Access-Control-Allow-Method: POST,GET'); //Zugriffsmethode zulassen

4Domain-ü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!

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