javascript - 没有 ?jsoncallback=? 的 JSONP

标签 javascript jquery json jsonp

我刚刚深入研究 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?

最佳答案

该代码将尝试使用 XMLHttpRequest 来获取数据。

默认情况下,the Same Origin Policy将阻止网页中的 JavaScript 跨域读取数据。

JSONP 是一种解决同源策略的 hack(它取决于以 JavaScript 程序形式表达的数据)。

CORS被开发为一种标准的、更细致的方法,以允许访问跨域资源。

data.consumerfinance.gov 实现 CORS。

这涉及添加额外的 HTTP 响应 header ,明确允许浏览器与其他网站上的 JavaScript 共享数据。

关于javascript - 没有 ?jsoncallback=? 的 JSONP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784052/

相关文章:

javascript - 通过选择性评估将 JSON 字符串转换为对象

javascript - 为什么 calendar multiple classes 缺少右下角的蓝色三 Angular 形?

javascript - 单击按钮后 Jquery Fadeout 将不起作用

java - 使用 pojo 数组将 Json 数组转换为 Pojo 时出现问题

javascript - 在标记中嵌入脚本所需数据的方法

javascript - 网站页面上的随机横幅定位。可能的?

javascript - 列表中最常出现的数字(众数) - 只想获取最高值

javascript - jstree - 添加本身包含子节点的子节点

javascript - 第一次单击时不会开始滚动列表元素

java - 使用 Java 通过 TCP 发送 JSON 对象