Axios.post('/feed/add',
Qs.stringify({
imgIds: [48,49],//todo:這是數組,傳到後臺獲取不到,使用jquery ajax是可以的,求解決?
})
).then(function (response) {
if(response.data.success){
that.back();
}
}).catch(function (error) {
})
將對象中的數組用JSON轉化一次就可以了
Qs.stringify({
imgIds: [48,49],//todo:這是數組,傳到後臺獲取不到,使用jquery ajax是可以的,求解決?
})
stringify中的對象不是嚴格的json對象導致報錯了,題主試一次按照嚴格的json格式寫imgIds: [48,49],將value值爲數組的轉化成字符串,[48,49].toString(); 或者是
JSON處理JSON字符串的;JSON.stringify()可以解析爲string;
toString()方法:都可以解析爲string
//如果用的是vue-resource的話,用
//這裏是用法
this.$http.post(path + "accuser/appLogin",
{
account: main.account,
password: main.password //我們是參數體,也就是文檔裏的[body]
},
{
emulateJSON : true //這行最關鍵。題外話:我們是選項體,也就是文檔裏的[options]
}
).then(function (res) {
console.log(res.data);
}, function (res) {
console.log(res.data);
});
//用法示例結束。
評論:vue-resource 這個組織數據和可選參數的方式很怪,它是放在前後兩個對象裏了。
emulateJSON : true 的原理是如下(我用的谷歌網頁的翻譯功能翻譯的它github文檔)
//從這裏開始
傳統的網絡服務器
如果您的Web服務器無法處理編碼的請求application/json,則可以啓用該emulateJSON選項。這將作爲application/x-www-form-urlencodedMIME類型發送請求,就像從普通的HTML表單一樣。
Vue。http。選項。emulateJSON = true ;(PS這是寫在new Vue(...)之外的形式,而emulateJSON : true是寫在請求函數裏面的形式,他倆選一種寫就行,產同樣作用)
如果您的Web服務器無法處理REST / HTTP請求PUT,PATCH並且DELETE您可以啓用該emulateHTTP選項。這將X-HTTP-Method-Override使用實際的HTTP方法設置標題並使用正常的POST請求。
Vue。http。選項。emulateHTTP = true ;
//到這裏結束
參考資料:https://segmentfault.com/q/1010000009064552
https://www.cnblogs.com/lixiuming521125/p/7504659.html