node.js - 第二次发布到 API 时出现 400(错误请求)

标签 node.js request

目前,我遇到了一个困扰我一整天的问题。本质上,我试图通过 Roblox 身份验证 API 获取帐户的登录 session 。当我从服务器发布到他们的 API 时,它首先起作用,这样我就可以获得 X-CSRF-TOKEN ,下次我向同一 API 发布帖子时需要在 header 中设置它,这样我就可以获得用于验证帐户 session 的 .ROBLOSECURITY 。但是,当我第二次在 header 中使用 token 发布到他们的 API 时,我收到 400 错误,并且我不确定为什么会发生这种情况。

此外,对于任何想知道的人,它都会返回一个有效的 X-CSRF-TOKEN。

var request = require('request');

var loginOptions    = {
    url: 'https://auth.roblox.com/v2/login',

    form: {
       'ctype':    'Username',
        'cvalue':   'AccountUsernameHere',
        'password': 'AccountPassGoesHere'
    },

    headers: {
        'Content-Type': 'application/json'
    }
};

request.post(loginOptions, function(error, response, body) {
    loginOptions.headers['X-CSRF-TOKEN'] = response.headers['x-csrf-token'];

    request.post(loginOptions, function(error, response, body) {
        if (response.statusCode == 200) {
            console.log('Success: ' + body);
        } else {
            console.log(response.statusCode + ' : ' + response.statusMessage);
        }
    });
});

最佳答案

您需要在nodejs中安装cors:npm install cors,您可以尝试以下操作

var express = require('express')
var cors = require('cors')
var app = express()
 
app.use(cors())
 
app.get('/products/:id', function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})
 
app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

关于node.js - 第二次发布到 API 时出现 400(错误请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51490580/

相关文章:

asp.net-mvc - Application_AuthenticateRequest 上的 ASP.NET MVC 重定向困境

戈朗 : How to terminate/abort/cancel inbound http request without response?

javascript - NODE.JS 'request' 未在数组中添加响应

javascript - Angular 2 测试应用程序卡在加载中

node.js - 在数组中的对象中按日期搜索

javascript - 检查数组 JavaScript 中是否存在字符串

node.js - 我应该如何对 Mongoose 中每个相关文档进行文档计数?

node.js - Mocha 和 zombie JS

java - 我想从 facebook api 请求多个页面名称和页面照片

java - 使用Spring post方法时出现异常: org. springframework.web.HttpRequestMethodNotSupportedException