我刚刚进入JSON并从data.gov找到以下.json文件:http://data.consumerfinance.gov/api/views.json
为什么我不需要?jsoncallback=?
来检索数据?
(function() {
$.getJSON('http://data.consumerfinance.gov/api/views.json', function (data) {
console.log(data);
});
})();
发布的代码有效。是因为我使用匿名回调函数吗? 我可以从任何服务器检索任何.json文件,或者(我的)需要API吗?
答案 0 :(得分:1)
该服务器在响应中发送Access-Control-Allow-Origin: *
,告诉您的浏览器忽略同源策略。
因此,您可以执行正常的AJAX请求,而无需JSONP。
答案 1 :(得分:1)
该代码将尝试使用XMLHttpRequest来获取数据。
默认情况下,the Same Origin Policy会阻止网页中的JavaScript跨域读取数据。
JSONP是一个解决同源策略的黑客(它取决于以JavaScript程序形式表达的数据)。
CORS是一种标准的,更加细致的方法,可以访问跨源资源。
data.consumerfinance.gov实现了CORS。
这涉及添加额外的HTTP响应标头,该标头为浏览器提供明确的权限,以便它与其他网站上的JavaScript共享数据。