【问题标题】:Why do i get error when trying to POST request (form)?为什么我在尝试 POST 请求(表单)时会出错?
【发布时间】: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


【解决方案1】:

我想,这个代码块可以帮到你。

        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);
    });

【讨论】:

  • 似乎在控制台中工作。但是,当尝试通过相关网站进行连接时,它说没有这样的用户......为什么?
猜你喜欢
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
相关资源
最近更新 更多