Heim  >  Artikel  >  Web-Frontend  >  So lösen Sie das Problem domänenübergreifender Anfragen

So lösen Sie das Problem domänenübergreifender Anfragen

清浅
清浅Original
2018-12-01 15:17:1832805Durchsuche

Methoden zum Lösen domänenübergreifender Anfragen sind: jsonp verwendet das Laden von Skript-Tags auf der Seite, um domänenübergreifende Anfragen zu implementieren; cors gleicht den aktuellen Quellpunkt über den im Antwortheader angegebenen Quellpunkt ab . Um domänenübergreifende Anfragen zu implementieren

Die domänenübergreifenden Anfragen, über die wir oft sprechen, fordern Ressourcen von anderen Domänennamen in einer Domäne an. Die anderen Domänennamen beziehen sich hier nicht nur auf Domänennamen, sondern umfassen auch viele Inhalte wie Protokolle, Domänennamen und Ports. Wenn die beiden Domänen unterschiedlich sind, werden sie im folgenden Artikel auch als unterschiedlich betrachtet Wir werden im Detail vorstellen, wie das Problem der Querverbindung gelöst werden kann.

[Empfohlene Kurse: JavaScript-Tutorial]

So lösen Sie das Problem domänenübergreifender Anfragen

Same Origin Policy

Manchmal erhalten wir während des Betriebs Fehler, weil wir gegen die Same Origin Policy verstoßen, eine Sicherheitsmaßnahme, die von Browsern implementiert wird, um Interaktionen zwischen Dokumenten unterschiedlicher Herkunft einzuschränken . Der Ursprung einer Seite wird durch ihr Protokoll, ihren Host und ihre Portnummer definiert. Ressourcen mit demselben Ursprung haben vollen Zugriff aufeinander. Der Zugriff wird jedoch verweigert, wenn die Quelle nicht identisch ist.

http://www.a.com/a.js 
http://www.b.com/a.js 
这两个之间就不可以互相访问,因为域名的不相同

Zusammensetzung des Domainnamens

timg (24)_看图王.jpg

Wenn die beiden oben genannten Domainnamen aufeinander zugreifen möchten, tun sie dies Generell gilt, dass die Same-Origin-Richtlinie schreibt, dass Cross-Origin-Schreibvorgänge erlaubt sind, Cross-Origin-Lesevorgänge jedoch nicht. Dies bedeutet, dass die Same-Origin-Richtlinie nicht verhindert, dass Daten in die Domäne geschrieben werden. Er verbietet ihnen jedoch lediglich, Daten aus der Domäne zu lesen oder mit der von der Domäne empfangenen Antwort nichts zu tun.

Domänenübergreifende Anforderungsmethode

JSONP

JSONP wird als JavaScript-Objektdarstellung mit Auffüllung bezeichnet und ist eine domänenübergreifende Methode Anfragen können durch die Verwendung von Skript-Tags in HTML-Seiten implementiert werden, um Code aus verschiedenen Quellen zu laden. JSONP basiert auf der Tatsache, dass das <script>-Tag aus verschiedenen Quellen stammen kann. Wenn der Browser das <script>-Tag analysiert, ruft er den Skriptinhalt ab und führt ihn im Kontext der aktuellen Seite aus. Normalerweise gibt der Dienst HTML oder einige Daten zurück, die in einem Datenformat wie XML oder JSON dargestellt werden. Wenn jedoch eine Anfrage an einen JSONP-fähigen Server gestellt wird, wird ein Skriptblock zurückgegeben, der bei Ausführung die seitenspezifische Rückruffunktion aufruft und die tatsächlichen Daten als Parameter bereitstellt </script>

HINWEIS: Dies ist nicht der Fall Gleiche Ursprungseinschränkungen, gute Kompatibilität auch in älteren Browsern, aber JSONP kann nur zur Durchführung domänenübergreifender GET-Anfragen verwendet werden, der Server muss JSONP-Anfragen explizit unterstützen.

So lösen Sie das Problem domänenübergreifender Anfragen

CORS-Methode

bietet einen Mechanismus für den Server, um dem Browser mitzuteilen, dass er Domäne A zum Lesen aus Domäne B anfordern kann Daten. Dies geschieht durch das Einfügen eines neuen Access-Control-Allow-Origin-HTTP-Headers in die Antwort. Wenn der Browser eine Antwort von einem Cross-Origin-Ursprung erhält, überprüft er den CORS-Header. Wenn der im Antwortheader angegebene Ursprung mit dem aktuellen Ursprung übereinstimmt, ist der Lesezugriff auf die Antwort zulässig, andernfalls wird ein Fehler gemeldet.

Im Vergleich zu JSONP bietet CORS die folgenden Vorteile:

Es unterstützt nicht nur GET-Anfragen, sondern auch andere Anfragen wie POST

Es kann Daten senden und empfangen XMLHttpRequest und verfügt über einen besseren Fehlerbehandlungsmechanismus

So lösen Sie das Problem domänenübergreifender Anfragen

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird für das Lernen aller hilfreich sein

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem domänenübergreifender Anfragen. 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