學習如何使用Axios發送url編碼的數據

我遇到了這個問題:我需要從一個Node.js應用程序中調用的API只接受url編碼格式的數據。

我必須找出解決這個問題的方法:如何使用Axios發送url編碼的數據?

首先,我們需要安裝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(),而是axios()

在其中,我們使用了qs提供的stringify()方法,並將數據包裹在其中。然後,我們設置了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'
 }
})