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數據了,容易導致保存成功再次獲取卻解析不到頁面失敗

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM