vue-axios-post利用qs.stringify解决跨域后发送给后端的所有字段包括int类型字段都变成了string字符串

在使用axios时post一般都会遇到跨域问题的,解决跨域除了后端外前端也需要引入qs包

        this.$http.post(url,
                qs.stringify({
                    myfile:postAjaxJson
                }),{
                headers: {
                  "Content-Type": "application/x-www-form-urlencoded"
                }
                }
                // {id:1}
                )
                .then(function (res) {
                    // console.log(postAjaxJson)
                console.log(res);
                })
                .catch(function (error) {
                console.log(error);
                });

但是解决跨域后,打印会发现postAjaxJson 所有字段都变成了字符串双引号格式。

如果后端需要你发送的字段中有int类型,这时候需要在发送前解析成int,默认还是会被解析走

解决方法时需要在发送前-这个时候处理数据是专门发送后端的数据而不要改变渲染页面的数比如ajaxlist

使用JSON.stringify(json)即可

postAjaxJson = JSON.stringify(postAjaxJson)

this.$http.post(url,
qs.stringify({。。。

注意:后端接收到的会是/n /""..格式的会获取到int,但是需要解码 不然后端直接存入数据库后,这里再获取就不是之前的json数据了,容易导致保存成功再次获取却解析不到页面失败

 

posted @ 2020-09-17 15:17  少哨兵  阅读(2983)  评论(0编辑  收藏  举报