2012-03-01 28 views
1

我JSON數據,我想在此jQuery的JSON文件,我用這個代碼:jQuery的獲取JSON數據是不工作

​​

但如果使用本地URL(「數據/ jsdata.json」 )它工作正常!我不明白爲什麼?

+0

請發表您的響應的例子 – 2012-03-01 11:41:36

+0

請張貼標題和JSON數據在這裏 – 2012-03-01 11:41:55

+0

也許web服務器無法正常投放JSON文件。你使用哪個網絡服務器?對於IIS7 http://www.uipress.com/add-json-handler-support-in-iis-7/ – arunes 2012-03-01 11:41:56

回答

1

如果「somewebsite」不是您自己的網站,您將不被允許使用AJAX獲取數據。 這是因爲SOP同源策略。 避免這種情況的一種方法是JSONP技術。但並不是所有網站都提供了jsonp API。

2

跨域JSON請求是不允許的。從getJSON文檔請參見本附註:

http://api.jquery.com/jQuery.getJSON/

  • 由於瀏覽器的安全限制,大多數「Ajax」的請求都受到同源策略; 該請求無法成功檢索來自不同域,子域或協議的數據。
  • 腳本和JSONP請求不受相同的源策略限制。

你需要做的是使用JSONP,那不過是一些還需要由服務器正常使用。

getJSON文檔,可以通過附加一個回調到您的網址做到這一點:

如果URL中包含字符串「回調=?」 (或類似的,由服務器端API定義),請求將被視爲JSONP。有關更多詳細信息,請參閱$.ajax()中關於jsonp數據類型的討論。

0

您需要實施JSONP,以解決瀏覽器中的跨站點腳本安全策略問題。在請求的查詢字符串中指定回調是必需的,以及服務器響應的一些特殊格式。

0

你可能嘗試做跨域Ajax請求(這要複雜得多)

考慮使用JSONP,但首先保證自己,你真的需要這個。在這種情況下,我個人更喜歡CURL方法服務器端。

反正用jQuery跨域檢查THIS