vue2前端使用axios發(fā)起post請求后端(springboot)接收不到值解決辦法
一、錯誤回現(xiàn)(前后端錯誤演示)
axios封裝-我常用的請求頭參數(shù) application/json; charset=utf-8

頁面登錄請求-post


網(wǎng)絡(luò)請求正常傳入?yún)?shù)
后端代碼,查看控制臺發(fā)現(xiàn)都為null,沒取到值。

二、解決
1.嘗試將前端post請求改成get,其他都不用變



發(fā)現(xiàn)正常取到值,打印輸出正常。前端頁面正常跳轉(zhuǎn)。
2.后端設(shè)置為post請求,前端axios要配置請求頭參數(shù)

還要再對數(shù)據(jù)再進行一次格式化(qs)

然后再去驗證


后端控制臺正常輸出。
三、結(jié)論


后來查閱資料發(fā)現(xiàn),只要我們前端只要傳入對象格式的參數(shù)時,axios就會對我們的數(shù)據(jù)進行JSON.stringify的操作。也就是說,將我們的 Content-Type 變成了 application/json;charset=utf-8。
axios 使用 post 發(fā)送數(shù)據(jù)時,默認是直接把 json 放到請求體中提交到后端的。
而后端接口使用@RequestParam注解就必須設(shè)置axios的請求頭為 application/x-www-form-urlencoded

@RequestParam接收的參數(shù)是來自HTTP請求體( Content-Type必須為 'application/x-www-form-urlencoded )

httpService.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
列出以下其他的值
httpService.defaults.headers['Content-Type'] = 'application/json; charset=utf-8';
上傳圖片最好是單獨封裝一個
export function fileUpload(url, params = {}) {
return new Promise((resolve, reject) => {
httpService({
url: url,
method: 'post',
data: params,
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
resolve(response);
}).catch(error => {
reject(error);
});
});
}以上就是vue2前端使用axios發(fā)起post請求后端(springboot)取不到值解決辦法的詳細內(nèi)容,更多關(guān)于vue2發(fā)起post請求后端取不到的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue3?Composition?API優(yōu)雅封裝第三方組件實例
這篇文章主要為大家介紹了Vue3?Composition?API優(yōu)雅封裝第三方組件實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
Vue單頁面應(yīng)用保證F5強刷不清空數(shù)據(jù)的解決方案
最近小編遇到這樣的問題當vue單頁面按F5強刷,數(shù)據(jù)就恢復(fù)初始了,這怎么辦呢?下面小編給大家?guī)砹薞ue單頁面應(yīng)用保證F5強刷不清空數(shù)據(jù)的解決方案,感興趣的朋友一起看看吧2018-01-01

