2011-08-17 77 views
1

如果我在本地使用json文件,getJSON工作正常,但我不明白爲什麼我無法從外部源獲取它?將url傳遞給getJSON

例如:

$.getJSON('http://ninsuna.elis.ugent.be/rdf/data/tennis/Roland_Garros-25.05.2009-RogerFederer-RobinSoderling-set1-game1?output=json', 
function(data) { 
    $('.result').html(data); 
    alert('Loaded.'); 
}); 

link輸出乾淨JSON文件,但該方法無法加載它,在螢火蟲響應字段是空的(不像當我切換到本地上傳.json文件)。

+2

它被稱爲[同源策略](http://en.wikipedia.org/wiki/Same_origin_policy) –

+0

您需要服務器端代碼來發送請求並作爲您的客戶端代碼的代理。 –

+0

出於安全原因,您不能這樣做,您需要使用JSONP hack。不能說我對此太有經驗,但getJSON文檔中有關於JSONP的內容:http://api.jquery.com/jQuery.getJSON/ – bcoughlan

回答

3

這違反了Same Origin Policy

此規則的例外是使用JSONP,但遠程服務器需要支持稍微不同的響應格式。

+1

是的。一旦找到返回所需內容的JSONP服務,請使用digg服務[現場示例](http://jsfiddle.net/ddvth/)。 –