2011-08-12 39 views
0

我在本地主機上使用$.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它工作完美,但對於網址它不工作。任何人都可以提供一些提示來解決這個問題嗎?如果有人想知道,這些網址會返回json(例如:「34」)。

EDIT [解決]:

如果有人將來會使用$.getJSON記住,你不能叫 「外星人」 域。

當我執行script.mydomain.com域的開銷腳本時,一切正常!

+2

您很可能會遇到[同源策略](https://developer.mozilla.org/zh/Same_origin_policy_for_JavaScript)。 – circusbred

回答

6

AJAX請求受到跨域策略的限制。基本上,如果他們沒有去原始站點託管的服務器,你就不能做Ajax請求。這稍微複雜一點,但我會認爲這是事實。

+0

好吧,那麼如何在cw.uppercut.pl上運行此測試腳本並請求位置/ newid? – user874565

1

您受瀏覽器安全限制從您自己的網站獲取代碼(jQuery使用XMLHttpRequest獲取getJSON)。爲了解決它,你需要使用jsonp(jquery添加一個腳本標籤),或者在你的文檔中創建並附加一個腳本標籤。

1

有可能是你有一個問題,你試圖在本地主機的瀏覽器ajax-request中運行到域cw.uppercut.pl。

這不是圖書館的問題。

+0

好吧,那麼如何在cw.uppercut.pl上運行此測試腳本並請求位置/ newid? – user874565