我之前在stackoverflow上发布了这个问题,但我对它进行了简化,以便更容易理解和回答:这是一个非常糟糕的举动,因为我得到的答案完全不充分。
我正在尝试用NodeJS编写一个不一致的Javascript机器人。这个机器人的目的是使用它们的OAuth2 client_id/client_secret身份验证方法从DeviantArt获取内容。
我的问题是,一旦发送了jQuery请求,它就再也不会返回,回调函数也再也不会被调用:所以我不能知道什么地方失败了,因为"status“变量保持为空。
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()从未触发过。
怎么做到的?为什么?
发布于 2017-03-13 04:54:14
你的问题可能是你不应该把一个函数作为参数放在你的done函数中。但是,如果有其他问题,可以试试这个:
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");
});https://stackoverflow.com/questions/42752887
复制相似问题