我之前在stackoverflow上发布了这个问题,但我已经简化了它,因此它可以更容易理解和回答:这是一个非常糟糕的举动,因为我的答案完全不够。
我尝试使用NodeJS编写Discord Javascript bot。这个机器人的目的是使用他们的OAuth2 client_id / client_secret身份验证方法从DeviantArt中获取内容。
我的问题是,一旦发送了jQuery请求,它就永远不会返回,并且永远不会调用回调函数:所以我不知道是什么失败了因为" status" var保持空白。
var jsdom = require("jsdom").jsdom;
var doc = jsdom();
var window = doc.defaultView;
var $ = require('jquery')(window);
var jsonFinal = '';
var token_url = 'https://www.deviantart.com/oauth2/token';
$.get( token_url, { grant_type: 'client_credentials', client_id: 5946, client_secret: 'whatever'} ).done(function( data ) {
jsonFinal = "("+data.status+data.error+")\n"+data;
console.log(jsonFinal);
});
(我在nodeJS 6上使用jsdom和jquery)
我遵循了DA API文档,我非常确定这些是发送到他们服务器的正确值,并且这是发送它们的正确方法。
但是,此代码中的console.log()永远不会被触发。
怎么样?为什么?
答案 0 :(得分:0)
你的问题可能是你不应该在你的完成函数中将函数作为参数。但是为了防止出现其他问题,请尝试以下方法:
var jsdom = require("jsdom").jsdom;
var doc = jsdom();
var window = doc.defaultView;
var $ = require('jquery')(window);
var jsonFinal = '';
var token_url = 'https://www.deviantart.com/oauth2/token';
$.get( token_url, {
grant_type: 'client_credentials',
client_id: 5946,
client_secret: 'whatever'
})
.done(function(data) {
console.log(data);
jsonFinal = "("+data.status+data.error+")\n"+data;
console.log(jsonFinal);
})
.fail(function(error) {
console.log(error);
})
.always(function() {
console.log("done");
});