Javascript getJSON不工作(可能跨域)
我从服务器上获取JSON,当我在浏览器中键入url时,我可以看到JSON数据。当我使用curl获取JSON时,我也可以看到数据。但是,当我试图在本地使用html页面访问数据时,我得到了一个错误。我试过使用Javascript getJSON不工作(可能跨域),javascript,jquery,Javascript,Jquery,我从服务器上获取JSON,当我在浏览器中键入url时,我可以看到JSON数据。当我使用curl获取JSON时,我也可以看到数据。但是,当我试图在本地使用html页面访问数据时,我得到了一个错误。我试过使用 $.support.cors = true; 但我仍然得到一个错误,是否有任何我可以解决这个可能的跨域问题 谢谢, Matt用于跨域请求。另请参阅,以了解更简单的jsonp处理(甚至是基本的错误处理)。这是一个很好的解决方案。如果服务器支持JSONP,那么您可以通过getJSON将回调=?附
$.support.cors = true;
但我仍然得到一个错误,是否有任何我可以解决这个可能的跨域问题
谢谢,
Matt用于跨域请求。另请参阅,以了解更简单的jsonp处理(甚至是基本的错误处理)。这是一个很好的解决方案。如果服务器支持
JSONP
,那么您可以通过getJSON
将回调=?
附加到url来获取数据
但如果响应只是json格式,则如下所示:
{a: 1, b:2}
那么就不能使用ajax直接获取数据。一种解决方案是在服务器端制作一个代理,获取远程json数据,然后再次输出,以避免跨域问题。其他答案建议了合适的替代方案(JSONP),但解释了为什么它不起作用
cors
的支持不是你可以打开的。这是浏览器和服务器必须支持的
有关更多信息,请参见,但要总结:
- 服务器需要发出一个
标题(或将访问控制允许源代码:
裁剪为您希望允许的域)*
- 您需要使用Firefox 3.5、Safari 4、Chrome 3、IE 8或Opera 12
您还可以在上查看
jQuery.support.cors
的文档。您能给我一个例子吗?