Javascript 如何从AJAX格式的API中提取?

Javascript 如何从AJAX格式的API中提取?,javascript,api,Javascript,Api,如何从AJAX格式的API中提取,例如: 我是一名业余程序员,所以Javascript中的任何东西都会有帮助提取这些数据的最简单方法是使用jQuery发出跨域ajax请求。基本上,这个想法是: $.ajax({ dataType: 'jsonp', //data in jsonp contentType: "application/json; charset=utf-8", url: 'http://live.nhle.com/GameData/RegularSeas

如何从AJAX格式的API中提取,例如:


我是一名业余程序员,所以Javascript中的任何东西都会有帮助

提取这些数据的最简单方法是使用jQuery发出跨域ajax请求。基本上,这个想法是:

$.ajax({
    dataType: 'jsonp', //data in jsonp
    contentType: "application/json; charset=utf-8",
    url: 'http://live.nhle.com/GameData/RegularSeasonScoreboardv3.jsonp',
    jsonpCallback: 'loadScoreboard', 
    success: function (data) {
       alert(data.games.length + ' games loaded');
    }
});
您会注意到jsonpCallback被设置为loadScoreboard,因为这就是jsonp数据的外观

这是一个完整的工作样本

在Google Chrome中启动开发者工具(点击键盘上的F12键),然后点击
控制台
选项卡查看完整响应

更新:这里有另一个更好的输出结果:

现在让我更详细地解释一下:

  • 上面的代码使用jQuery,它只是一个Javascript库,可以包含在页面中
  • jQuery本身有一系列实用函数,可以轻松(呃)发出Ajax请求(在本例中,这就是您所需要的)。所以说
    $.ajax(…
    的那一行就是我调用jQuery函数来发出ajax请求
  • 由于这是对另一个第三方网站的Ajax请求,因此您需要启动所谓的跨域资源共享()Ajax请求。为此,您需要在函数调用中指定一些特殊参数。例如,您需要指定希望接收回的数据类型为(本质上,您要求接收Javascript对象表示法格式-JSON的数据)
  • 最后,您链接的网站返回的数据定义了一个回调函数,名为
    loadScoreboard
    ——您只需转到链接并分析输出即可看到这一点。因此,当您发出ajax请求时,您必须将回调函数命名为与网站输出中显示的回调函数相同的名称。如果您不这样做,jQquery会自动为您创建一个具有唯一标识符的名称,但由于它与网站强制使用的名称(即
    loadScoreboard
    )不匹配,因此会出现错误。这就是为什么需要定义参数jsonCallback='loadScoreboard'
  • 因此,整个过程只是发出一个XHTML HTTP GET请求,以获取第三方网站上以JSON格式返回数据的资源。当返回数据时,将立即调用名为
    loadScoreboard
    的函数,并将数据本身作为参数传递给该函数


    如果你看我的第二本书,你会看到一个更详细的例子,它迭代结果并创建一个表。

    。还有很多教程。公平地说,除了jQuery之外,还有很多其他框架提供AJAX抽象。你也可以使用核心JavaScript AJAX API(这不需要JS框架),但它在所有这些框架中都被抽象出来是有原因的(例如,它可能很难使用)。你至少应该开始学习。对不起,我是一个初学者,那么在这些API中提取数据的最简单方法是什么?是你告诉我的这些方法吗?@ajp15243,公平点,但是OP自称是业余的,我试着让它变得简单。那么@Andy,你的方法是学习如何提取这些数据的最简单方法吗ata?抱歉,由于我是一名业余爱好者,我不太确定这是在做什么以及这个脚本的作用。我很确定这会提醒我玩了多少游戏,这是正确的吗?如果是,我如何让它提醒我分数?我很确定这会提醒我玩了多少游戏,这是正确的吗?如果是,我如何让它提醒我分数?????