Ajax クロスドメインの完璧なソリューションの例の共有

小云云
リリース: 2023-03-19 12:02:01
オリジナル
1522 人が閲覧しました

この会社は、イベント ページを作成し、プロセス内のすべてのインターフェイスを検出し、ドメイン間で 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート