javascript - API正在返回函数

标签 javascript node.js api

我正在尝试从 node.js 中的 API 获取分数,我得到的响应看起来像一个函数。我不确定如何从此函数中获取 JSON 数据。

var req = http.request(options, function(res){
    res.setEncoding('utf8');
    res.on('data', function(data){
        console.log(data);
    });
});

响应是...

shsMSNBCTicker.loadGamesData({
"sport": "NBA", 
"period": "20140426", 
"games": [""]
});

在“游戏”中是一堆数据,但这些数据并不重要,而且会占用太多空间。对于这个例子,假设我正在尝试“运动”;这将返回“NBA”。

最佳答案

您得到的响应是 JSONP .通常,API 会提供 JSON 和 JSONP 可配置参数。但是,既然您在这里提问,我将假设您无法控制该请求(也许向 API 作者发送一条礼貌的消息可能会有所帮助)。

您可以提供响应中使用的命名空间并评估响应。但由于这是 Node 而不是浏览器,这个想法充其量是愚蠢的。相反,我建议将响应手动操作为 JSON:

JSON.parse(response.replace(/^[^\(]*\(/, '').replace(/\);$/, ''));

关于javascript - API正在返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23318174/

相关文章:

api - 通过 Rest API 在 twitter 上关注用户

Java Servlet 翻译API请求编码问题: german characters

javascript - Angular.js : ng-repeat OrderBy fails to order values

c# - 在 jquery 的 javascript 中选择项目

javascript - 如何在 Ionic 2 beta 中包含 Ionic.io 服务

node.js - 未处理的PromiseRejection警告: Error: Can't set headers after they are sent

javascript - Node.js 服务器在浏览器中超时,但 cURL 请求有效

javascript - 在其他函数中响应组件异步等待

node.js - dnode 有认证中间件吗?

ruby - 没有 nginx 的 Puma - 同一 IP 上的多个 ruby​​ 应用程序 :PORT