Javascript クロスドメインリクエストに対する 4 つの解決策_JavaScript スキル

WBOY
リリース: 2016-05-16 17:40:21
オリジナル
1195 人が閲覧しました
クロスドメイン はどのような状況で発生しますか?
ドメイン名が http://www.example.com.cn/ であると仮定します。
要求されたドメイン名がこのドメイン名と異なる場合、クロスドメインには抜け穴があるため、この状況はクロスドメインになります。通常、クロスドメインリクエストメソッドはリクエストできません。
解決策:
1. window.name
1. サーバーは
コードを返します。 コードは次のとおりです:

<script>window.name='{"id":"3", "name":"leisure"} ';&lt ;/script> <br>2. onload イベントを追加します<iframe id="iframe1" onload="iLoad"><br><script type="text/javascript" > <br>varload = false; <br>function iLoad() { <br>if(load == false) { <br>// 同じドメイン処理、リクエスト後に iframe が再度ロードされます <br> document.getElementById( 'iframe1').contentWindow.location = '/'; <br>load = true; <br>} else { <br>// window.name のコンテンツを取得する必要があることに注意してください。同じドメイン処理です! <br>var data = document.getElementById('iframe1').contentWindow.name; <br>alert(data) // {"id":"3", "name":"leisure"} <br>load = false; <br>} <br>} <br></script>

3. フォームのターゲットを iframe の ID に設定し、フォームを送信します。
コードをコピー コードは次のとおりです:



2. JSONP サーバーは callback({"id": "3", "name": "leisure"});

コードをコピーします。 コードは次のとおりです。



3. jQuery.getJSON
サーバーは json 形式のデータを返します test({"id": "3", "name": "leisure"}); テスト関数 名前はコールバックパラメータで定義されています

コードをコピーします コードは次のとおりです
$.getJSON(url " ?callback=?", data, function(data) {
}


callback=? パラメータに注意してください。 jQuery は疑問符を置き換える関数名を自動的に生成します。これは実際には JSONP を使用して実装されます。

4. Flash クロスドメイン
crossdomain.xml をサーバーに追加します http://www.example.com.cn/crossdomain.xml


コードをコピーします コードは次のとおりです:
<ドメインからのアクセスを許可="*.another.com.cn" />

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