この記事の内容は、AJAX クロスドメインに関する詳細な紹介 (コード例) です。必要な方は参考にしていただければ幸いです。
AJAX のクロスドメインの問題に対してよく使用される解決策が 2 つあります。それらを簡単に記録し、詳細については参考資料を確認してください。次の例では、テスト用に 2 つのドメイン名、www.test.com と www.example.com を作成します。
同一生成元ポリシー
同一生成元ポリシーは、あるソースからロードされたドキュメントまたはスクリプトが別のソースのリソースと対話する方法を制限します。これは、潜在的に悪意のあるファイルを隔離するための重要なセキュリティ メカニズムです。2 つのページで、ドメイン名、プロトコル、ポートが同じであれば、それらは同じソースからのものであり、問題はありません。彼らの間の相互作用。同一生成元ポリシーは非常に重要なセキュリティ メカニズムですが、場合によってはこのメカニズムを突破する必要があり、これには クロスドメイン が必要です。
JSONP
JSONP は非常に一般的なメソッドであり、 タグにはクロスドメインがないという原則を使用して実装されています。制限。以下は www.test.com
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'get', dataType:'jsonp', jsonp: "callback", success:function(data) { console.log(data) } })
での JQuery の使用例です。以下は www.example.com
<?php $callback = $_GET['callback']; $name = $_GET['name']; // 处理数据 $data = md5($name); echo $callback . '(' . json_encode($data) . ')';
CORS の PHP 処理です。
CORS (クロスオリジン リソース共有) は、クロスオリジン リソース共有標準により、Web アプリケーション サーバーがクロスドメイン アクセス制御を実行できるようにします。 GET のみをサポートする JSONP と比較して、CORS はより多くの HTTP リクエストをサポートし、よりシンプルかつ安全です。ただし、CORS には互換性の問題がある可能性があります。
以下は、AJAX リクエストを www.test.com
$.ajax( { url:'//www.example.com', data:{name:'tom'}, type:'post', dataType:'json', success:function(data) { console.log(data) } });
www.example.com
<?php header("Access-Control-Allow-Origin: http://www.test.com"); $name = $_POST['name']; // 处理数据 $data = md5($name); echo json_encode($data);
以上がAJAX クロスドメインの詳細な紹介 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。