【发布时间】:2020-07-05 11:48:14
【问题描述】:
谢谢提前回答,代码如下:
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” Image
【问题讨论】:
-
请详细说明您的问题。你尝试了什么?哪一行代码导致了错误?
-
错误不是来自nodeJS,而是来自服务器。代码行是这个“console.log(body);”,正如我所说的服务器返回这个(错误)而不是在一切顺利时返回一些东西^^
-
看起来您正在返回 HTTP 403 错误(禁止),但不确定原因。我在
gamehag.com页面上找不到 API 文档,你有链接吗? -
我不知道 gamehag.com 请求应该是什么样子。但是我认为正文不包含元属性。尝试将
csrfToken打印到控制台。如果它是空的,那么你需要从res读取标题。 -
服务器检查您是否有一个有效的用户代理。如果您包含一个有效的,错误就会消失(
user-agent: Mozilla...无效,它应该只是Mozilla...)
标签: javascript node.js request cloudflare csrf-token