この会社は、イベント ページを作成し、プロセス内のすべてのインターフェイスを検出し、ドメイン間で Ajax リクエストを実行したいと考えています。ここでは、クロスドメインといくつかのソリューションについて簡単に紹介します。
ブラウザーによって実装される同一オリジン ポリシーの制限により、XmlHttpRequest は現在のソース (ドメイン名、プロトコル、ポート) からのリソースのリクエストのみを許可されるため、AJAX がドメインを越えることは許可されません。一般的に使用される 3 つの方法は次のとおりです:
1. jsonp アクセス
JSONP (JSON with Padding) は、スクリプト タグをサーバー側で統合してクライアントに返すことを可能にする非公式のプロトコルであり、クロスプラットフォーム実装が実現されます。 JavaScript コールバックの形式。
実装メソッド
1)
<script type="text/javascript"> $.ajax({ url:url, dataType:'jsonp', data:'', jsonp:'callback', success:function(result) { }, }); </script>
2)
$.getJSON(url+"?callback=?", function(result) { });
注: 1] jsonp は get でのみリクエストでき、post リクエストを使用した場合でも自動的に変換されます。 post for you;
2] jsonp はデータの取得だけでなく、データの送信にも使用できます。
2. damain メソッド
このメソッドは、メイン ドメインが同じでサブドメインが異なる場合に使用できます。このメソッドは、同じドメイン名を指すようにドメイン名を変更するだけです。メイン ドメインは同じですが、セカンダリ ドメイン名が異なります。2 つの無関係な URL の場合、この方法は使用できません。
document.domain = 'a.com'
注: 実際の開発では、ローカルホストのドメイン名は次のようになります。会社のドメイン名とはまったく異なります。この方法では、ドメインが変更されても結果は得られません。解決策は、C ドライブのホスト ファイルを変更し、ローカル アドレス localhost を会社のドメイン名に変更することです。会社の第 2 レベル ドメイン名を指定した場合、この方法を使用できます。
以下は、変更されたドメイン名を指します:
#127.0.0.1 localhost
127.0.0.1 company.com
3、postMessage
PostMessage は、h5 を作成する会社です。 h5 ゲーム、データの送信などを容易にするために iframe をネストすることは避けられません。
ここでは iframe の ID が 'iframe' であると仮定します;
iframe 内の js に
var message = 'date';<br>if (parent.document.getElementById(‘iframe‘)) { //捕获iframe var iframe = parent.document.getElementById(‘iframe').contentWindow; //发送消息 parent.postMessage(message, "*"); }
を書く必要があります。そうすると、 を取得できます。メッセージデータ。
関連する推奨事項:
AjaxクロスドメインリクエストでのParsererrorエラーの解決策JSはAjaxクロスドメインリクエストのフラスコ応答コンテンツを実装しますインスタンスはAjaxクロスドメインリクエストの原理を詳細に説明します以上がAjax クロスドメインの完璧なソリューションの例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。