6

私の問題は:

次のコードを使用してjsonを呼び出すと

var url="http://localhost:9000/json";
$.getJSON(url,
 function(data){
    alert(data['yay']);
    });

完璧に動作しますが、私のローカルホスト IP は 10.0.0.145 で、ローカルホストを IP アドレスに置き換えると機能しなくなります

var url="http://10.0.0.145:9000/json";
$.getJSON(url,
 function(data){
    alert(data['yay']);
    });
4

2 に答える 2

6

同一オリジン ポリシーに違反しています。宛先サイトを制御する場合は、JSONPスタイルの呼び出しの使用を検討するか、サイトおよび AJAX 呼び出しでクロス ドメインオプション ( ) を有効にする必要があります。crossDomain

同じオリジンに違反している場合、ブラウザはデフォルトで呼び出しを行いません。Fiddler、FireBug、または Chrome Tools を使用して HTTP トラフィックを監視すると、それがわかります。リクエストが実行されても表示されません。その場合は、上記のいずれかの方法を使用してください。

これが役立つことを願っています。幸運を!

于 2012-08-29T13:41:49.433 に答える
3

その理由は単純にクロスドメイン保護です。別のドメインからの json の ajax クエリは、(明らかに) サーバーによって特定のヘッダーが指定されている場合にのみ実行できます。

これは ajax ベースのアプリケーションをコーディングするために知っておくべき重要なことなので、この完全なリファレンスを読むことをお勧めします。

両方に同じ名前を使用します。

于 2012-08-29T13:40:46.963 に答える