Создание запроса, закодированного в x-www-форме-url, с помощью axios

#javascript #node.js

#javascript #node.js

Вопрос:

 const { user } = require('./config');
const axios = require('axios');

const Querystring = require('querystring');

let body = Querystring['stringify']({
    email: 'MY EMAIL@email.com',
    password: 'pass'
})

const config = {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
}

axios['post']('https://minecraftservers.org/login', body, config)
['then'](response => console.log(response))
  

Я пытаюсь войти через веб-сайт
у него нет api
заголовки правильные
если вам интересно, откуда я это узнал, я использовал chrome dev tools
как обратный инжиниринг

 content-type: application/x-www-form-urlencoded
  

это заголовок, который они использовали, когда я пытался войти на сайт

это то, что я получаю, когда я регистрируюсь через сайт, а не код, он работает там. изображение

Комментарии:

1. можете ли вы попробовать следующее. axios.request ({ url: ‘/user’, метод: ‘post’, данные: { email: ‘МОЙ EMAIL@email.com ‘, пароль: ‘pass’ }, заголовки: {‘Content-Type’:’application/x-www-form-urlencoded’}, // … и другие параметры })/.затем(ответ=>console.log(ответ))

Ответ №1:

Вы можете использовать URLSearchParams

 const params = new URLSearchParams();
params.append('firstName', 'paul');
params.append('lastName', 'fred');
axios.post('/user', params);
  

Это позволяет избежать добавления другой библиотеки.

Ответ №2:

Я думаю, systax — это ваша проблема. Есть ли у вас какие-либо трудности, кроме синтаксиса?

 const { user } = require('./config');
const axios = require('axios');

const Querystring = require('querystring');

let body = Querystring['stringify']({
    email: 'MY EMAIL@email.com',
    password: 'pass'
})

const config = {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
}

axios.post('https://minecraftservers.org/login', body, config)
.then(response => console.log(response))
  

Комментарии:

1. На случай, если кто-то захочет использовать этот код сейчас. API Querystring является устаревшим. Используйте URLSearchParams().

Ответ №3:

Попробуйте

 axios.post('https://minecraftservers.org/login', body, config)
.then(response => console.log(response))