import axios from 'axios';
import Qs from 'qs'; // 如果只是post請求就不需要引qs
/**
* 封裝的一個請求方法
* @param path 請求路徑
* @param params 參數(shù),對象形式 get請求也是對象形式
* @param method POST哑诊,GET
* @returns {Promise<unknown>}
*/
function request(path, params, method = 'GET') {
let data = {};
let newAxios = axios.create({}); // 根據(jù)指定配置創(chuàng)建一個新的 axios,也就是每個新 axios都有自己的配置
// 設(shè)置請求頭
if (method === 'POST') { // post請求
newAxios.defaults.headers['Content-Type'] = 'application/json;charset=UTF-8';
data = params;
}
if (method === 'GET') { // get請求
newAxios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
if (JSON.stringify(params) !== '{}') {
path = path + '?' + Qs.stringify(params);
}
}
// 請求攔截
newAxios.interceptors.request.use( (config) => {
// 設(shè)置請求頭可在此配置
return config;
}, (error) => {
return Promise.reject(error);
});
// 響應(yīng)攔截
newAxios.interceptors.response.use(response => {
if (response.status === 200) {
return response.data.data;
} else{
return Promise.reject(response);
}
});
// 發(fā)送請求
return new Promise((resolve, reject) => {
newAxios({
method,
url: path,
data
}).then(result => {
resolve(result)
}).catch(err => {
reject(err)
})
})
}
export default request;
封裝axios
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門丢氢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來傅联,“玉大人,你說我怎么就攤上這事疚察≌糇撸” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵稍浆,是天一觀的道長载碌。 經(jīng)常有香客問我猜嘱,道長,這世上最難降的妖魔是什么嫁艇? 我笑而不...
- 正文 為了忘掉前任朗伶,我火速辦了婚禮,結(jié)果婚禮上步咪,老公的妹妹穿的比我還像新娘论皆。我一直安慰自己,他們只是感情好猾漫,可當(dāng)我...
- 文/花漫 我一把揭開白布点晴。 她就那樣靜靜地躺著,像睡著了一般悯周。 火紅的嫁衣襯著肌膚如雪粒督。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼溪北,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夺脾?” 一聲冷哼從身側(cè)響起之拨,我...
- 正文 年R本政府宣布佩脊,位于F島的核電站蛙粘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏威彰。R本人自食惡果不足惜出牧,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歇盼。 院中可真熱鬧舔痕,春花似錦、人聲如沸豹缀。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽邢笙。三九已至啸如,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氮惯,已是汗流浹背组底。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 思路:axios設(shè)置公共請求頭:通過axios配置告唆,設(shè)置統(tǒng)一的baseURL;開發(fā)環(huán)境 & 生產(chǎn)環(huán)境接口地址: 通...
- 我們從封裝axios請求中來講解攔截器 首先引入axiosimport axios from 'axios' 創(chuàng)建...
- axios中g(shù)et請求與post請求的簡單函數(shù)封裝侈净,axios全局請求參數(shù)設(shè)置,請求及返回攔截器 一僧凤、 https...