2011-08-12 11 views
0

localhostの$.getJSON()で本当に奇妙な問題が発生しています。私のテストコードは以下の通りです:

$(document).ready(function(){ 
     var url = "http://script.mydomain.com/location/newid" 
     var url2 = "http://localhost/cms/location/newid" 

      $.getJSON(url2, function(id) { 
       alert(id); 
      }); 
}); 

url2については、それは完璧に動作しますが、URLに対しては機能しません。誰もこの問題を解決するためのヒントを教えてもらえますか?誰かが知りたいのであれば、これらのURLはjson(例: "34")を返します。

EDIT [SOLVED]:

将来的に誰もが$.getJSONあなたは "エイリアン" のドメインを呼び出すことはできませんことを覚えて使用する場合は

script.mydomain.comドメインのオーバーヘッドスクリプトを実行すると、すべて正常に動作します。

+2

[同一元のポリシー](https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript)を実行している可能性があります。 – circusbred

答えて

6

AJAXリクエストは、クロスドメインポリシーによって制限されます。基本的に、元のサイトがホストされていたサーバーに行かない場合、ajaxリクエストを実行することはできません。それは少し複雑ですが、私はこれを仮定します。

+0

OK、どうすればこのテストスクリプトをcw.uppercut.plで実行し、location/newidを要求できますか? – user874565

1

ブラウザのセキュリティによって、自分のWebサイトからコードを取得することができます(jqueryはgetJSONのXMLHttpRequestを使用します)。これを回避するには、jsonp(jqueryはスクリプトタグを追加)を使用するか、ドキュメントにスクリプトタグを作成して追加する必要があります。

1

ローカルホストからのブラウザajax-request、ドメインcw.uppercut.plに実行しようとしている可能性があります。

これはライブラリの問題ではありません。

+0

OK、どうすればこのテストスクリプトをcw.uppercut.plで実行し、location/newidをリクエストできますか? – user874565