JSONP 没有 ?jsoncallback=?
JSONP without ?jsoncallback=?
我刚刚进入 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?
该服务器在响应中发送 Access-Control-Allow-Origin: *
,告诉您的浏览器忽略同源策略。
因此,您可以执行正常的 AJAX 请求,而不需要 JSONP。
该代码将尝试使用 XMLHttpRequest 获取数据。
默认情况下,the Same Origin Policy将阻止网页中的JavaScript跨域读取数据。
JSONP 是一种绕过同源策略的 hack(它取决于以 JavaScript 程序形式表达的数据)。
CORS 被开发为一种标准的、更细微的方法,以允许访问 cross-origin 资源。
data.consumerfinance.gov 实施 CORS。
这涉及添加额外的 HTTP 响应 headers,明确允许浏览器与其他网站上的 JavaScript 共享数据。
我刚刚进入 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?
该服务器在响应中发送 Access-Control-Allow-Origin: *
,告诉您的浏览器忽略同源策略。
因此,您可以执行正常的 AJAX 请求,而不需要 JSONP。
该代码将尝试使用 XMLHttpRequest 获取数据。
默认情况下,the Same Origin Policy将阻止网页中的JavaScript跨域读取数据。
JSONP 是一种绕过同源策略的 hack(它取决于以 JavaScript 程序形式表达的数据)。
CORS 被开发为一种标准的、更细微的方法,以允许访问 cross-origin 资源。
data.consumerfinance.gov 实施 CORS。
这涉及添加额外的 HTTP 响应 headers,明确允许浏览器与其他网站上的 JavaScript 共享数据。