どのような状況でクロスドメイン が発生しますか?
ドメイン名が //m.sbmmt.com であるとします。
要求されたドメイン名がこのドメイン名と異なる場合、この状況はクロスドメインです。クロスドメインには抜け穴があるため、一般的に、通常のクロスドメインリクエスト方式ではリクエストできません。
解決策:
1. window.name
1. サーバーは
<script>window.name='{"id":"3", "name":"leisure"}';</script>
を返します。2. iframe を定義し、onload イベント
<script type="text/javascript"> var load = false; function iLoad() { if(load == false) { // 同域处理,请求后会再次重新加载iframe document.getElementById('iframe1').contentWindow.location = '/'; load = true; } else { // 获取window.name的内容,注意必须进行同域处理后方可访问! var data = document.getElementById('iframe1').contentWindow.name; alert(data); // {"id":"3", "name":"leisure"} load = false; } } </script>
3. フォームを定義し、フォームのターゲットを iframe の ID に設定して、フォームを送信します
<form action="url" method="POST" target="iframe1"> <button type="submit" value="submit" /> </form>
2. サーバーは callback({"id": "3", " name": "leisure"}); <script type="text/javascript">
function callback(data) {
alert(data);
}
</script>
<script type="text/javascript" src="//m.sbmmt.com/product.jsp?id=5&jsonp=callback"></script>
サーバーは json 形式のデータ test({"id": "3", "name": "leisure") を返しますテスト関数名 コールバック パラメーターで $.getJSON(url + "?callback=?", data, function(data) {
}
4. Flash クロスドメイン
crossdomain.xml をサーバーに追加します //m.sbmmt.com/crossdomain.xml
<?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*.another.com.cn" /> </cross-domain-policy>
以上がJavascriptクロスドメインリクエストコードの実装方法の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。