【採坑】axios發送請求報400錯誤,用postman進行請求測試沒問題

目錄

 

原因:

解決方法:

方法一:在前端解決

方法二:在後端解決


原因:請求頭錯誤引起

axios發送的請求頭的 Content-Type 默認是 application/json;

而postman默認的是 application/x-www-form-urlencoded

 

解決方法:

方法一:在前端解決

參考鏈接:axios發送post請求返回400狀態碼

使用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註解接收

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章