學習如何使用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'
}
})