2011-08-17 73 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/)。 –