開發(fā)過程中,經(jīng)常需要全局設(shè)置钮呀,許多前端開發(fā)時容易忽略請求頭的配置,常用的請求頭有2種:
axios.defaults.timeout = 15000; //超時響應(yīng)
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; // 配置請求頭(推薦)
// axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8'; // 配置請求頭
axios.defaults.baseURL = $core.use('http'); //確認協(xié)議和地址
axios.defaults.withCredentials = true; // axios 默認不發(fā)送cookie昨凡,需要全局設(shè)置true發(fā)送cookie
一:get請求
axios中常見的get/delete請求爽醋,也稱作query請求:
//一般發(fā)送請求是這么寫(不推薦):
axios.get('/user?id=12345&name=user')
.then(function (res) {
console.log(res);
}).catch(function (err) {
console.log(err);
});
//但是為了方便全局統(tǒng)一調(diào)用封裝的axios,我一般采用(推薦)
axios.get('/user', { //params參數(shù)必寫 , 如果沒有參數(shù)傳{}也可以
params: {
id: 12345便脊,
name: user
}
})
.then(function (res) {
console.log(res);
})
.catch(function (err) {
console.log(err);
});
二:post/put/patch請求
傳參方式大致用的有3種
(1) 'Content-Type'= 'multipart/form-data'
傳參格式為 formData
(全局請求頭:'Content-Type'= 'application/x-www-form-urlencoded')
(request的Header:'Content-Type'= 'multipart/form-data')
var formData=new FormData();
formData.append('user',123456);
formData.append('pass',12345678);
axios.post("/notice",formData)
.then((res) => {return res})
.catch((err) => {return err})
image.png
(2) 'Content-Type'= 'application/x-www-form-urlencoded'
傳參格式為 query 形式,使用$qs.stringify
(全局請求頭:'Content-Type'= 'application/x-www-form-urlencoded')
(request的Header:'Content-Type'= 'application/x-www-form-urlencoded')
import axios from 'axios'
import qs from 'Qs'
let data = {"code":"1234","name":"yyyy"};
axios.post(`${this.$url}/test/testRequest`,qs.stringify({
data
}))
.then(res=>{
console.log('res=>',res);
})
image.png
(3) 'Content-Type'= 'application/json
傳參格式為 raw (JSON格式)
(全局請求頭:'Content-Type'= 'application/x-www-form-urlencoded')
(request的Header:'Content-Type'= 'application/json;charset=UTF-8')
//方法一:
import axios from 'axios'
let data = {"code":"1234","name":"yyyy"};
axios.post(`${this.$url}/test/testRequest`,data)
.then(res=>{
console.log('res=>',res);
})
//方法二:
var readyData=JSON.stringify({
id:1234,
name:user
});
axios.post("/notice",readyData)
.then((res) => {return res})
.catch((err) => {return err})
image.png