Der Inhalt dieses Artikels ist eine detaillierte Einführung (Codebeispiel) über domänenübergreifendes AJAX. Ich hoffe, dass er für Sie hilfreich ist.
Es gibt zwei häufig verwendete Lösungen für domänenübergreifende AJAX-Probleme. Notieren Sie diese kurz und überprüfen Sie die Referenzmaterialien auf Details. Im folgenden Beispiel werden zwei Domänennamen zum Testen erstellt: www.test.com und www.example.com.
Same-Origin-Richtlinie
Die Same-Origin-Richtlinie schränkt ein, wie aus einer Quelle geladene Dokumente oder Skripte mit Ressourcen aus einer anderen Quelle interagieren. Dies ist ein wichtiger Sicherheitsmechanismus zum Isolieren potenziell schädlicher Dateien.Zwei Seiten stammen von derselben Quelle, wenn der Domänenname, das Protokoll und der Port alle gleich sind und es kein Problem mit der Interaktion gibt zwischen ihnen. Die Same-Origin-Richtlinie ist ein sehr wichtiger Sicherheitsmechanismus, aber manchmal ist es notwendig, diesen Mechanismus zu durchbrechen, der domänenübergreifend erfordert.
JSONP
JSONP ist eine sehr verbreitete Methode. Sie wird nach dem Prinzip implementiert, dass das Tag nicht domänenübergreifend ist Einschränkungen. Das Folgende ist ein Beispiel für die Verwendung von JQuery in www.test.com
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'get', dataType:'jsonp', jsonp: "callback", success:function(data) { console.log(data) } })
Das Folgende ist die PHP-Verarbeitung von www.example.com
<?php $callback = $_GET['callback']; $name = $_GET['name']; // 处理数据 $data = md5($name); echo $callback . '(' . json_encode($data) . ')';
CORS
CORS (Cross-Origin Resource Sharing), der Cross-Origin-Resource-Sharing-Standard, ermöglicht Webanwendungsservern die Durchführung einer domänenübergreifenden Zugriffskontrolle. Im Vergleich zu JSONP, das nur GET unterstützt, unterstützt CORS mehr HTTP-Anfragen und ist einfacher und sicherer. Allerdings kann es bei CORS zu Kompatibilitätsproblemen kommen.
Das Folgende ist die PHP-Verarbeitung zum Senden einer AJAX-Anfrage
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'post', dataType:'json', success:function(data) { console.log(data) } });
www.example.com in www.test.com
<?php header("Access-Control-Allow-Origin: http://www.test.com"); $name = $_POST['name']; // 处理数据 $data = md5($name); echo json_encode($data);
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in domänenübergreifendes AJAX (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!