解決Vue axios post請求,後臺獲取不到數據問題

最近作項目,須要用到vue,後臺是php,第一次使用axios進行請求,本覺得同ajax同樣,會很簡單,可是結果每每不讓人滿意啊,get請求很簡單,這裏就不說了,主要說下 post請求方式。php

使用axios進行post請求,後臺竟然接收不到數據,這就納悶了,因而網上一頓搜索,如今將所用的解決辦法給你們說下:前端

1.new URLSearchParams方式

起初使用params.append("屬性名":屬性值)的方式,對於簡單的數據傳遞這樣是沒有問題的,後臺能夠正常接收數據,但我發現一個問題,不知道你們有沒有遇到過,當傳遞數據裏含有數組時,你會發現傳到後臺的是字符串的形式 arr:a1,b1,c1 而非正常格式 arr:[a1,b1,c1]不符合個人要求,繼續查找。vue

2.Qs.stringify方式

看到網上好多解決辦法都在說qs,因而裝了qs插件,使用方法也很簡單。首先安裝插件,而後註冊組件,axios.post(url,Qs.stringify(params)),在傳遞參數前,用qs轉換下格式就能夠了,Qs是將對象 序列化成URL的形式,以&進行拼接,在後臺輸出下接收的數據,嘿有值了,別提有多高興了,剛樂呵沒二分鐘,等會再認真看看,這才發現當數據爲空時qs竟然給過濾掉了,直接沒傳,這叫一個傷心。。。ios

3.改變後臺接收方式

網上的帖子大部分都是在前端處理,但沒什麼太好的解決辦法,因而把思路轉到後臺,改變後臺的接收方式,用file_get_contents('php://input')來接收前端傳來的參數,前端正常格式傳輸。ajax

axios.post(url, params,{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'})

以上只是我的的實踐通過,有其餘解決辦法的,歡迎留言。axios

相關文章
相關標籤/搜索