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

转载于:https://my.oschina.net/lixiaoyan/blog/1576458

Logo

前往低代码交流专区

更多推荐