Javascript 为什么我在尝试发布请求(表单)时出错?
Thx需提前回答,代码如下:Javascript 为什么我在尝试发布请求(表单)时出错?,javascript,node.js,request,cloudflare,csrf-token,Javascript,Node.js,Request,Cloudflare,Csrf Token,Thx需提前回答,代码如下: const request = require('request'); const cheerio = require('cheerio'); const url = 'https://gamehag.com/api/v1/register'; let csrfToken; const form = { name: 'nic0l4s171', email: 'nic0l4s171@gmail.com', password: 'nic0l4s
const request = require('request');
const cheerio = require('cheerio');
const url = 'https://gamehag.com/api/v1/register';
let csrfToken;
const form = {
name: 'nic0l4s171',
email: 'nic0l4s171@gmail.com',
password: 'nic0l4s171'
};
request('https://gamehag.com/', (err, res, body) => {
if(err) return console.error(err);
let $ = cheerio.load(body);
csrfToken = $('meta[name=csrf-token]').attr('content');
const headers = {
'User-Agent': 'user-agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'x-csrf-token' : csrfToken
};
request.post({url, form, headers}, (err, res, body) => {
console.log(body);
});
});
这是我在尝试执行代码时遇到的错误:“错误代码:1010”
我想,这个代码块可以帮助您
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://gamehag.com/api/v1/register',
'headers': {
'x-csrf-token': 'roglJups3F9dF3FpOntpwDYqq7UFJQU4BOAaYX3z',
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
'name': 'nic0l4s171',
'email': 'nic0l4s171@gmail.com',
'password': 'nic0l4s171'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
请详细说明您的问题。你试了什么?哪一行代码导致错误?错误不是来自nodeJS,而是来自服务器。代码行是“console.log(body);”,正如我所说的,服务器返回我这个(err),而不是在一切正常时返回一些内容^^^看起来您返回了HTTP 403错误(禁止),但不确定原因。我在
gamehag.com
页面上找不到API文档,你有链接吗?我不知道gamehag.com请求应该是什么样子。但是我认为主体不包含元属性。尝试将csrfToken
打印到控制台。如果为空,则需要从res
读取标题。服务器会检查您是否有有效的用户代理。如果包含有效的,错误将消失(user-agent:Mozilla…
无效,应该是Mozilla…
)似乎正在控制台中工作。然而,当它试图通过有问题的网站连接时,它说没有这样的用户。。。为什么?