axios post請求后台接收不到參數 和 一些配置問題


原因: 

axios 的 headers的 content-type  默認是 “application/json ”,傳給后台的格式是這樣的:

但是后台接收數據的格式一般是表單格式的,就是formdata的數據格式:

所以這時就出現了一種情況,就是前端提交的數據請求接口沒有報錯,但是后台就是接收不到沒有數據返回。

解決方法:

1,和后台商量換數據格式,99.99%是被否決的

2,傳數據之前先把參數轉成formdata數據

let data = new FormData()
data.append('id',id)
data.append('name',name)   //把一個一個字段名和值appen進去,有點麻煩

3,改變axios 的 headers的 content-type 的值

1.application/x-www-form-urlencoded (這個是變成JSON字符串格式)

2.multipart/form-data   (這個是formdata格式)

3,application/json  (默認的格式)

4,text/xml  (這種一般很少用到)

//改變方法,第一種
let ajax=axios.create({     //在新建axios時設置
    baseURL:baseUrl,
    headers:{
        'Content-type': 'multipart/form-data'
    },
})

//第二種 import axios from 'axios'; //在import之后設置 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

 參考鏈接:axios用post提交的數據格式

wepack 中axios設置代理

 

//webpakc 配置
proxy: { // agent cross-domain interface
      "/api": {                             //代理標識  
        target: 'http://aaa.com',    //要代理的地址
        changeOrigin: true,
        pathRewrite: {
          "^/api": ""                     //實際請求時重寫標識,例如實際的請求地址是http://aaa.com/test/user,設置了標識后代理的請求地址是loclahost:8888/api/test/user
        }
      }
    }


let ajax=axios.create({
    baseURL:/test,      //一般這個地方寫的是域名和接口名中間的那部分
})

//請求時
ajax.post('/user')     //請求時會自動拼上域名和baseURL   http://aaa.com/test/user

 

 參考鏈接:https://segmentfault.com/q/1010000012607105

 


免責聲明!

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



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