import axios from 'axios';
import { Message } from 'element-ui';
let baseURL = '';
if (process.env.NODE_ENV === 'development') {
baseURL = ''; //設(shè)置自己的baseURL
}
const service = axios.create({
baseURL
// timeout: 240000 // request timeout455445424
});
// request interceptor
service.interceptors.request.use(config => {
config.headers = {
'Content-Type': 'application/json;charset=utf-8'
};
return config;
}, error => {
// Do something with request error
Promise.reject(error);
});
const codeMessage = {
200: '服務(wù)器成功返回請求的數(shù)據(jù)弥臼。',
201: '新建或修改數(shù)據(jù)成功。',
202: '一個請求已經(jīng)進(jìn)入后臺排隊(異步任務(wù))癌别。',
204: '刪除數(shù)據(jù)成功。',
400: '發(fā)出的請求有錯誤,服務(wù)器沒有進(jìn)行新建或修改數(shù)據(jù)的操作窥岩。',
401: '用戶沒有權(quán)限(令牌税课、用戶名、密碼錯誤)端壳。',
403: '用戶得到授權(quán)告丢,但是訪問是被禁止的。',
404: '發(fā)出的請求針對的是不存在的記錄更哄,服務(wù)器沒有進(jìn)行操作芋齿。',
406: '請求的格式不可得。',
410: '請求的資源被永久刪除成翩,且不會再得到的觅捆。',
422: '當(dāng)創(chuàng)建一個對象時,發(fā)生一個驗證錯誤麻敌。',
500: '服務(wù)器發(fā)生錯誤栅炒,請檢查服務(wù)器。',
502: '網(wǎng)關(guān)錯誤术羔。',
503: '服務(wù)不可用赢赊,服務(wù)器暫時過載或維護。',
504: '網(wǎng)關(guān)超時级历。'
};
/**
* @function 請求狀態(tài)碼檢測
* @param {type} response {description}
* @return {type} {description}
*/
const checkStatus = response => {
if (response.status >= 200 && response.status < 300) {
return response;
}
const errortext = codeMessage[response.status] || response.statusText;
Message({
message: `請求錯誤 ${response.status}: ${response.url},${errortext}`,
type: 'error',
duration: 5 * 1000
});
const error = new Error(errortext);
error.name = response.status;
error.response = response;
throw error;
};
/* 返回一個Promise(發(fā)送post請求) */
const fetch = (type, url, params) => {
return new Promise((resolve, reject) => {
const data = (type === 'get' || type === 'delete') ? { params: params } : params;
service[type](url, data)
.then(checkStatus)
.then(response => {
const resultData = response.data;
const code = resultData.code || resultData.R;
if (code === 200 || code === 220 || code === 299) {
resolve(resultData);
} else if (code === 1) {
Message({
message: resultData.message || resultData.msg,
type: 'error',
duration: 5 * 1000
});
reject(new Error(resultData.message));
} else {
if (resultData.message !== '異常') {
Message({
message: resultData.message || resultData.msg,
type: 'error',
duration: 5 * 1000
});
}
reject(new Error(resultData.message));
}
}).catch((error) => {
reject(error);
});
});
};
export default fetch;
封裝一個http請求文件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門樟澜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事秩贰∨常” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵毒费,是天一觀的道長吭服。 經(jīng)常有香客問我,道長蝗罗,這世上最難降的妖魔是什么艇棕? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮串塑,結(jié)果婚禮上沼琉,老公的妹妹穿的比我還像新娘。我一直安慰自己桩匪,他們只是感情好打瘪,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著傻昙,像睡著了一般闺骚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妆档,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼习瑰!你這毒婦竟也來了绪颖?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布楔敌,位于F島的核電站,受9級特大地震影響驻谆,放射性物質(zhì)發(fā)生泄漏卵凑。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一胜臊、第九天 我趴在偏房一處隱蔽的房頂上張望勺卢。 院中可真熱鬧,春花似錦象对、人聲如沸黑忱。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽甫煞。三九已至,卻和暖如春冠绢,著一層夾襖步出監(jiān)牢的瞬間抚吠,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 前言 最近在研究AFN的實現(xiàn)方式剪勿,發(fā)現(xiàn)它使用block替代了代理的方式,將各個網(wǎng)絡(luò)請求的各個階段都整合在一起方庭,使得...
- 原文 https://segmentfault.com/a/1190000010032590
- 如果你做過Angular或者Vue的話阿弃,你會發(fā)現(xiàn)诊霹,微信小程序跟他們有很多相似的地方,相比來說渣淳,小程序要簡單一些畅哑。h...