【问题标题】:Why is this node js request returning 401 status code?为什么这个节点js请求返回401状态码?
【发布时间】:2016-02-23 03:16:34
【问题描述】:

这是一个简单的 oauth2 访问令牌请求。运行它会返回一个 401 状态代码和一个空错误对象。使用 curl 请求传递相同的参数成功完成。

var request = require('request');
var payload = {
                "grant_type": "password",
                "client_id": user.clientID,
                "client_secret": user.clientsecret,
                "username": user.username,
                "password": user.password
              };

var options = {
                method: 'POST',
                url: baseURL + passrequestURL,
                headers: {
                           'accept': "application/json",
                           'content-type': "application/x-www-form-urlencoded"
                },
                data: JSON.stringify(payload)
              };

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    var info = JSON.parse(body);
    console.log(info);
  } else {
    console.log(response.statusCode);
  }
}

request(options, callback);

【问题讨论】:

  • 我建议您使用网络嗅探器来检查您的 request() 与使用 curl 时发送的确切内容。如果您得到不同的结果,那么请求中的某些内容可能有所不同。
  • 同意前面的评论,user.* 的一些变量可以设置不同或根本不设置

标签: node.js oauth oauth-2.0 httprequest


【解决方案1】:

想通了。将“数据”字段切换为“表单”字段,并将有效负载对象传递给它,而不将其转换为 JSON 字符串。

我使用 Postman chrome 扩展来解决这个问题并强烈推荐它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多