У меня была такая проблема: API, который я должен был вызвать из Node.js приложение принимало данные только в формате urlencoded.
Мне нужно было решить эту проблему: как отправлять данные в кодировке url с помощью Axios?
Первое, что нам нужно сделать, это установить модуль qs . Это классная библиотека для анализа и упорядочивания строк запросов с некоторой дополнительной безопасностью:
npm install qs
Затем нам нужно импортировать модуль qs вместе с импортом Axios, конечно:
const qs = require('qs')
const axios = require('axios')Если вы используете модули ES, использовать
import qs from 'qs' import axios from 'axios'
Далее, код Axios. Проверьте мой полный учебник по Axios, если вы с ним не знакомы.
Короче говоря, нам нужно использовать полную форму для запроса Axios. Не axios.post() но аксиос() .
Внутри мы используем метод stringify() , предоставляемый qs и мы помещаем в него данные. Затем мы устанавливаем заголовок content-type :
axios({
method: 'post',
url: 'https://my-api.com',
data: qs.stringify({
item1: 'value1',
item2: 'value2'
}),
headers: {
'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
}
})Оригинал: “https://flaviocopes.com/axios-urlencoded/”