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

时间:2018-07-24 04:42:24

标签: node.js request

当前,我遇到了一整天都无法解决的问题。本质上,我试图通过Roblox身份验证API来获得帐户的登录会话。当我从服务器发布到他们的API时,它首先起作用,这样我就可以获取X-CSRF-TOKEN了,下次我在同一API上发布信息时,需要在标头中设置.ROBLOSECURITY 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); } }); }); ,用于验证该帐户会话。但是,第二次我使用标头中的令牌发布到他们的API时,出现了400错误,并且不确定为什么会发生这种情况。

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

CartActivity

2 个答案:

答案 0 :(得分:0)

您需要在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')
})

答案 1 :(得分:0)

看来我的代码有两个问题。

第一个问题是我本应该使用form时使用body。我最终也需要添加json: true