Heim  >  Artikel  >  Web-Frontend  >  AJAX-übergreifendes Wissen

AJAX-übergreifendes Wissen

php中世界最好的语言
php中世界最好的语言Original
2018-03-16 16:56:351302Durchsuche

Dieses Mal werde ich Ihnen das domänenübergreifende Wissen über AJAX vermitteln. Was sind die Vorsichtsmaßnahmen bei der domänenübergreifenden Verwendung von AJAX? Hier sind praktische Fälle.

1. Was ist domänenübergreifendes AJAX?

Ajax fordert eine Webressource an, deren Zieladresse eine nicht lokale Domäne ist (das Protokoll, der Domänenname und der Port sind unterschiedlich) und erhält diese externe Anwendungsdaten basierend auf der Antwort.

 Wenn wir einen externen Dienst anfordern, verweigert der Browser den autorisierten Zugriff aus Sicherheitsgründen.

2. Gründe für die domänenübergreifende Nutzung

2.1 Die Same-Origin-Richtlinie des Browsers

2.1.1 Die Bedeutung der Same-Origin-Richtlinie

  Im Jahr 1995 wurde dieselbe Origin-Richtlinie von der Netscape Corporation in den Browser eingeführt. Derzeit implementieren alle Browser diese Richtlinie.

Ursprünglich bedeutet es, dass das von Webseite A gesetzte Cookie nicht von Webseite B geöffnet werden kann, es sei denn, die beiden Webseiten haben denselben Ursprung. Der sogenannte „gleiche Ursprung“ bezieht sich auf „drei Gemeinsamkeiten“.

Gleiches Protokoll, gleicher Domänenname, gleicher Port, gleicher Port

2.1.2 Der Zweck der gleichen Ursprungsrichtlinie

  Der Zweck der gleichen Ursprungsrichtlinie besteht darin, sicherzustellen die Sicherheit der Benutzerinformationen und verhindern, dass bösartige Websites Daten stehlen.

2.1.3 Der Umfang der Beschränkungen der Same-Origin-Policy

  Mit der Entwicklung des Internets ist die „Same-Origin-Policy“ immer strenger geworden. Derzeit gibt es drei

Verhaltensweisen, die eingeschränkt sind, wenn sie nicht denselben Ursprung haben.

Cookie, LocalStorage und IndexDB können nicht gelesen werden.

DOM kann nicht abgerufen werden.

AJAX-Anfrage kann nicht gesendet werden.

3. Methoden zur Lösung domänenübergreifender Probleme

3.1 Browsern die Überprüfung verbieten

Deaktivieren Sie die Same-Origin-Richtlinie, indem Sie Parameter für den Browser festlegen.

Nehmen Sie Chrome als Beispiel:

3.1.1 Windows

Klicken Sie mit der rechten Maustaste auf die Chrome-Verknüpfung und fügen Sie Parameter zum Browser in den

Eigenschaften hinzu: --disable -web-security --user-data-dir
Speicherort für die Verknüpfung:

AJAX-übergreifendes Wissen

3.1.2 Linux

chromium-browser --disable-web-security
3.1 .3 mac

open -a "Google Chrome" --args --disable-web-security --user-data-dir
3.2 Verwendung der JSONP-Methode

3.2.1 JSONP-Konzept

JSONP (JSON mit

Padding) ist eine „Verwendung von Der JSON-Modus kann verwendet werden, um das Problem des domänenübergreifenden Datenzugriffs in Mainstream-Browsern zu lösen. Aufgrund der Same-Origin-Richtlinie können Webseiten, die sich auf server1.example.com befinden, im Allgemeinen nicht mit anderen Servern als server1.example.com kommunizieren, mit Ausnahme des HTML-Elements <script>. Mit dieser offenen Richtlinie des <script>-Elements können Webseiten dynamisch aus anderen Quellen generierte JSON-Daten abrufen. Dieses Verwendungsmuster wird als JSONP bezeichnet. Bei den mit JSONP erfassten Daten handelt es sich nicht um JSON, sondern um beliebiges </script>JavaScript, das mit einem JavaScript-Interpreter ausgeführt wird, anstatt mit einem JSON-Parser analysiert zu werden.

3.2.2 Verwendung von JSONP

Implementierung der JSONP-Unterstützung auf der Serverseite

JQuery-Aufrufmethode ($.ajax()-Methode)

$.ajax({url:'www.example.com/a.php?id=1',dataType:'jsonp',jsonp:'jsonp_callback',success:function(){//dostuff},
});
3.2.3 Nachteile von JSONP

Änderung des Servercodes erforderlich

Sie können zum Anfordern nur die GET-Methode verwenden

Was gesendet wird, ist keine XHR-Anfrage, sondern eine Skript

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

JavaScript-Code zum Animieren von Text

JavaScript-Code-Snippet, um festzustellen, ob ein Datum gültig ist

Das obige ist der detaillierte Inhalt vonAJAX-übergreifendes Wissen. 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