Javascript getJSON 不起作用(可能是跨域)
Javascript getJSON not working (Possibly Cross Domain)
我从服务器获取JSON,当我在浏览器中输入URL时,我可以看到JSON数据。当我使用 curl 获取 JSON 时,我也可以看到数据。但是当我尝试在本地使用 html 页面访问数据时,出现错误。我试过使用
$.support.cors = true;
但是我仍然收到错误,无论如何我可以解决这个可能的跨域问题吗?
谢谢马 特
对跨域请求使用 JSONP(带填充的 JSON)。另请参阅 jquery 插件,以便更轻松地处理 jsonp (甚至是基本的错误处理)。这是一个很好的示例页面。
如果服务器支持 JSONP
,那么您可以通过getJSON
将?callback=?
附加到 url 来获取数据。
但是,如果响应只是 json 格式,例如:
{a: 1, b:2}
然后,您不能使用 Ajax 直接获取数据。一种解决方案是在服务器端创建一个代理,获取远程 json 数据,然后再次输出以避免跨域问题。
其他答案提出了合适的替代方案(JSONP),但要解释为什么它不起作用;
cors
的支持不是您可以打开的。这是浏览器和服务器必须支持的东西。
有关更多信息,请参阅此处,但要总结:
- 服务器需要发出一个
Access-Control-Allow-Origin: *
标头(或定制*
作为您希望允许的域)。 - 您需要使用 Firefox 3.5、Safari 4、Chrome 3、IE 8 或 Opera 12。
您还可以在 API 文档中查看有关jQuery.support.cors
的文档。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- $.getJSON 在 Chrome 和 Safari 中不起作用
- 那么getJSon就不起作用了
- Javascript getJSON 不起作用(可能是跨域)
- getJSON 方法不起作用
- $.getJSON 在 IE10 中不起作用
- 为什么返回在getJSON中不起作用,为什么我不能从getJSON写入变量
- getJSON 在服务器上不起作用,但在本地工作
- $.getJSON没有'不起作用,但在脚本中包含JSON对象起作用
- 在pagebeforeshow中使用$.getJSON获取json数据在jquery mobile中不起作用
- 为什么我的$getjson电话不起作用
- getJson解析器没有'不起作用
- getJSON只响应明文,否则不起作用
- OpenWeatherMap.Org API - $.getJSON不起作用,我也没有接收到任何数据
- Getjson () jquery下拉菜单不起作用
- JSON_ENCONDE→getJSON不起作用
- PhoneGap中的$.getJSON不起作用
- $.getJSON不起作用