最近做項目,需要用到vue,后臺是php,第一次使用axios進行請求,本以為同ajax一樣,會很簡單,但是結果往往不讓人滿意啊,get請求很簡單,這里就不說了,主要說下 post請求方式。
使用axios進行post請求,后臺居然接收不到數據,這就納悶了,于是網上一頓搜索,現在將所用的解決辦法給大家說下:
1.new URLSearchParams方式
起初使用params.append("屬性名":屬性值)的方式,對于簡單的數據傳遞這樣是沒有問題的,后臺可以正常接收數據,但我發現一個問題,不知道大家有沒有遇到過,當傳遞數據里含有數組時,你會發現傳到后臺的是字符串的形式 arr:a1,b1,c1 而非正常格式 arr:[a1,b1,c1]不符合我的要求,繼續查找。
2.Qs.stringify方式
看到網上好多解決辦法都在說qs,于是裝了qs插件,使用方法也很簡單。首先安裝插件,然后注冊組件,axios.post(url,Qs.stringify(params)),在傳遞參數前,用qs轉換下格式就可以了,Qs是將對象 序列化成URL的形式,以&進行拼接,在后臺輸出下接收的數據,嘿有值了,別提有多高興了,剛樂呵沒二分鐘,等會再認真看看,這才發現當數據為空時qs居然給過濾掉了,直接沒傳,這叫一個傷心。。。
3.改變后臺接收方式
網上的帖子大部分都是在前端處理,但沒什么太好的解決辦法,于是把思路轉到后臺,改變后臺的接收方式,最終使用file_get_contents('php://input')解決。
以上這篇解決Vue axios post請求,后臺獲取不到數據的問題方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答