1. 程式人生 > 實用技巧 >vue-axios-post利用qs.stringify解決跨域後傳送給後端的所有欄位包括int型別欄位都變成了string字串

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