クロスドメイン はどのような状況で発生しますか?
ドメイン名が http://www.example.com.cn/ であると仮定します。
要求されたドメイン名がこのドメイン名と異なる場合、クロスドメインには抜け穴があるため、この状況はクロスドメインになります。通常、クロスドメインリクエストメソッドはリクエストできません。
解決策:
1. window.name 1. サーバーは
<script>window.name='{"id":"3", "name":"leisure"} ';< ;/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" />