目錄
原因:請求頭錯誤引起
axios發送的請求頭的 Content-Type 默認是 application/json;
而postman默認的是 application/x-www-form-urlencoded
解決方法:
方法一:在前端解決
使用qs庫進行數據的序列化
參考鏈接裏的代碼:
axios.interceptors.request.use(config => {
// 如果不是FormData類型,且爲post請求,則進行數據的序列化
if (Object.prototype.toString.call(config.data) !== '[object FormData]' && config.method === 'post') {
// 請求攔截器處理
config.data = qs.stringify(config.data)
}
return config
}, (err) =>{
return Promise.reject(err);
})
注意:此處如果按 參考鏈接 則有問題,我在後來做文件上傳功能時,用post請求傳 FormData 類型的參數時遇到了問題,傳FormData類型參數不能序列化
關於qs
參考鏈接:Vue 之qs 使用詳解
方法二:在後端解決
參考鏈接:解決axios發送post請求返回400狀態碼的問題
因爲axios發送的請求頭的 Content-Type 默認是 application/json類型,所以在後端接收的時候使用@RequestBody註解接收