我从服务器获取 JSON,当我在浏览器中输入 url 时,我可以看到 JSON 数据。当我使用 curl 获取 JSON 时,我还可以看到数据。但是当我尝试在本地使用 html 页面来访问数据时,我得到了一个错误。我试过使用
$.support.cors = true;
但我仍然得到一个错误,无论如何我可以解决这个可能的跨域问题吗?
谢谢,马特
我从服务器获取 JSON,当我在浏览器中输入 url 时,我可以看到 JSON 数据。当我使用 curl 获取 JSON 时,我还可以看到数据。但是当我尝试在本地使用 html 页面来访问数据时,我得到了一个错误。我试过使用
$.support.cors = true;
但我仍然得到一个错误,无论如何我可以解决这个可能的跨域问题吗?
谢谢,马特
对跨域请求使用JSONP(带填充的 JSON) 。另请参阅jquery 插件以更轻松地处理 jsonp(甚至是基本错误处理)。这是一个很好的示例页面。
如果服务器支持JSONP
,那么您可以getJSON
通过附加?callback=?
到 url 来获取数据。
但如果响应只是 json 格式,例如:
{a: 1, b:2}
那么你不能使用ajax直接获取数据。一种解决方案是在您的服务器端制作一个代理,获取远程 json 数据,然后再次输出,以避免跨域问题。