Vue傳遞序列化數據 原

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章