最近做項(xiàng)目晋南,需要用到vue,后臺(tái)是php,第一次使用axios進(jìn)行請(qǐng)求,本以為同ajax一樣羔砾,會(huì)很簡(jiǎn)單负间,但是結(jié)果往往不讓人滿意啊,get請(qǐng)求很簡(jiǎn)單蜒茄,這里就不說(shuō)了唉擂,主要說(shuō)下 post請(qǐng)求方式。
使用axios進(jìn)行post請(qǐng)求檀葛,后臺(tái)居然接收不到數(shù)據(jù)玩祟,這就納悶了,于是網(wǎng)上一頓搜索屿聋,現(xiàn)在將所用的解決辦法給大家說(shuō)下:
1.new URLSearchParams方式
起初使用params.append("屬性名":屬性值)的方式空扎,對(duì)于簡(jiǎn)單的數(shù)據(jù)傳遞這樣是沒(méi)有問(wèn)題的,后臺(tái)可以正常接收數(shù)據(jù)润讥,但我發(fā)現(xiàn)一個(gè)問(wèn)題转锈,不知道大家有沒(méi)有遇到過(guò),當(dāng)傳遞數(shù)據(jù)里含有數(shù)組時(shí)楚殿,你會(huì)發(fā)現(xiàn)傳到后臺(tái)的是字符串的形式arr:a1,b1,c1 而非正常格式 arr:[a1,b1,c1]不符合我的要求撮慨,繼續(xù)查找。
2.Qs.stringify方式
看到網(wǎng)上好多解決辦法都在說(shuō)qs,于是裝了qs插件脆粥,使用方法也很簡(jiǎn)單砌溺。首先安裝插件,然后注冊(cè)組件变隔,axios.post(url,Qs.stringify(params)),在傳遞參數(shù)前规伐,用qs轉(zhuǎn)換下格式就可以了,Qs是將對(duì)象 序列化成URL的形式匣缘,以&進(jìn)行拼接,在后臺(tái)輸出下接收的數(shù)據(jù)猖闪,嘿有值了,別提有多高興了肌厨,剛樂(lè)呵沒(méi)二分鐘培慌,等會(huì)再認(rèn)真看看,這才發(fā)現(xiàn)當(dāng)數(shù)據(jù)為空時(shí)qs居然給過(guò)濾掉了柑爸,直接沒(méi)傳检柬,這叫一個(gè)傷心。。何址。
3.改變后臺(tái)接收方式
網(wǎng)上的帖子大部分都是在前端處理,但沒(méi)什么太好的解決辦法进胯,于是把思路轉(zhuǎn)到后臺(tái)用爪,改變后臺(tái)的接收方式,最終使用file_get_contents('php://input')解決胁镐。
作者:路巧巧
鏈接:http://www.reibang.com/p/90ca44e6f29b
來(lái)源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有偎血,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。
針對(duì)第二種情況盯漂,我的解決方案:將空數(shù)組從新賦值為空字符串或者null,經(jīng)過(guò)轉(zhuǎn)換能保留key