javascript - 从其他站点获取 JSON(P)

标签 javascript jquery json angularjs jsonp

我正在尝试使用 Ajax 获取数据。 数据是json。我用jqueryangular .

但结果是未定义或错误。

这是我的 jquery 代码:

$(document).ready(function() {
      var url = "http://market.dota2.net/history/json/";

      $.ajax({
           type: 'GET',
            url: url,
            async: false,
            contentType: "application/json",
            dataType: 'jsonp',
            success: function(data) {
              console.log(data);
            }
        });
    });

在 Angular 中,我使用 jsonp 方法。怎么了?

顺便说一下,在纯Java中我可以从这个url获取数据...

最佳答案

Whats wrong?

您正在尝试调用提供 JSON 的端点,就像它提供 JSONP 一样。那是行不通的;它们是不同(尽管相关)的格式。

示例 JSON :

{"foo":"bar"}

示例 JSONP :

callback({"foo":"bar"})

注意区别:JSONP 实际上是一个 JavaScript 函数调用,包裹在 JSON 周围。

如果 API 支持 JSONP,请调用支持它的端点。

如果没有,则无法直接查询,除非提供者支持Cross-Origin Resource Sharing并与您的起源共享,因为 Same Origin Policy这适用于 ajax 调用。

By the way, in pure Java i can get data from this url...

因为 Java 代码不在 SOP 控制的上下文中运行,因此可以从该端点获取数据(作为 JSON)并使用它。这也与只需将该 URL 发布到浏览器地址栏即可让我们看到数据的原因相同。但 ajax 调用受更严格的规则约束。

关于javascript - 从其他站点获取 JSON(P),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31742637/

相关文章:

javascript - 不滚动到顶部的 anchor

javascript - 为什么表格列表中有缩进?

javascript - 使用 Create React App 进行 React 样式化

javascript - 关于观察者和未消耗的计算属性的混淆

javascript - 点击/点击通过 JQuery Mobile 中的绝对定位 div

javascript - 使用 googleapis 检测地理位置并使用 jQuery 从 openweathermap 接收该位置的当前天气

javascript - 单击 slick.js 中的点后停止自动播放

java - 将 java 中大型 JSON 解析对象暴露给 UI 的有效方法是什么?

java - 修改/更新 jsonArray 中的值?

node.js - 如何在谷歌云函数中使用 JSON 配置文件