詳解解決使用axios發(fā)送json后臺接收不到的問題
問題描述
按照axios官網(wǎng)例子發(fā)起請求傳遞json,后臺接受到的數(shù)據(jù)為空,一直卡在options階段。
嘗試的方法
開始以為是接口有問題,使用postman測試下,一切正常,百思不得其解,看了好多issue也解決不了,加了headers:{'content-type':'application/json'}也沒用。
官網(wǎng)上是說,傳json就按application/json進行處理,然而并沒有卵用;之后套了一層JSON.stringify(data) ,content-type又變成表單格式了==。
然后翻自己之前的代碼,發(fā)現(xiàn)寫法如出一轍,懷疑是版本號的問題,然而并不是==。。。??紤]到可能和服務端有關系。
原代碼如下:
import axios from 'axios';
export default function request(url, params) {
return axios.post(`xxxxxx/${url}`, params)
.then((response) => {
console.log('response', response);
return response;
})
.catch((error) => {
console.log('error', error);
return error;
});
}
最后想想還是用fetch吧(確實用了,發(fā)現(xiàn)還是有這個問題,現(xiàn)在深度懷疑是服務端將參數(shù)類型卡的太死了,還有polyfill的問題就放棄了,如果有知道的小伙伴請留言告訴我,謝謝),實在不行就ajax(還要封裝成promise,哭)。出于對axios的堅持,終于找到了解決方法。
解決方法
就是添加qs庫,將json序列化之后傳遞,詳見這個issue。
代碼:
import axios from 'axios';
import qs from 'qs';
export default function request(url, params) {
return axios.post(`https://xxxxxxxx/${url}`, qs.stringify(params))
.then((response) => {
console.log('response', response);
return response;
})
.catch((error) => {
console.log('error', error);
return error;
});
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
uniapp使用scroll-view下拉刷新無法取消的坑及解決
這篇文章主要介紹了uniapp使用scroll-view下拉刷新無法取消的坑及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Vue3前端做打印頁面信息實現(xiàn)打印功能(打印界面某個部分)
這篇文章主要介紹了如何使用vue3-print-nb依賴在Vue?3項目中實現(xiàn)頁面打印功能,提供了完整的代碼示例,大家可以根據(jù)項目需求選擇合適的打印方法,需要的朋友可以參考下2025-02-02
vue前端實現(xiàn)表格數(shù)據(jù)增查改刪功能
增刪改查是我們寫項目百分之七十會遇到的代碼,下面這篇文章主要給大家介紹了關于vue前端實現(xiàn)表格數(shù)據(jù)增查改刪功能的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05
vue使用keep-alive保持滾動條位置的實現(xiàn)方法
這篇文章主要介紹了vue使用keep-alive保持滾動條位置的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04

