【问题标题】:Passing url to getJSON将 url 传递给 getJSON
【发布时间】:2011-08-17 13:58:43
【问题描述】:

如果我在本地使用 json 文件,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 文件,但该方法无法加载它,在 Firebug 中响应字段为空(与我切换到本地 .json 文件时不同)。

【问题讨论】:

  • 您需要服务器端代码来发送请求并充当客户端代码的代理。
  • 出于安全原因你不能这样做,你需要使用 JSONP hack 来代替。不能说我对此很有经验,但 getJSON 文档中有关于 JSONP 的内容:api.jquery.com/jQuery.getJSON

标签: javascript jquery json getjson


【解决方案1】:

这违反了Same Origin Policy

此规则的例外是使用 JSONP,但是远程服务器需要支持略有不同的响应格式。

【讨论】:

  • 是的。一旦你找到返回你需要的 JSONP 服务,这里是 live example 使用 digg 服务。
猜你喜欢
  • 2015-11-11
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
相关资源
最近更新 更多