/*
* @Description: axios封裝
* @Author: 劉
* @email: 1395380336@qq.com
* @Date: 2021-02-04 11:32:45
* @LastEditTime: 2021-02-25 19:10:24
*/
import axios from "axios";
import router from "../router/index";
import NProgress from 'nprogress'
import {
Message
} from "element-ui"
import {
time
} from "echarts";
var baseURL = "/api";
const service = axios.create({
baseURL,
timeout: 1 * 1000,
});
const toLogin = () => {
router.push({
path: "/login",
query: {
// 把當(dāng)前的路由傳遞過去 這樣我們登陸成功之后就可以從哪里來返回到哪里去
backRouter: router.currentRoute.fullPath,
},
});
};
service.interceptors.request.use((config) => {
NProgress.start();
if (localStorage.getItem('token')) {
config.headers.Authorization = localStorage.getItem('token')
}
return config;
}, (error) => {
console.log(error)
return Promise.reject(error);
});
service.interceptors.response.use((config) => {
NProgress.done();
if (config.status == 200) {
return config.data;
} else {
console.log("請(qǐng)求失敗", config);
}
}, error => {
let index = error.message.indexOf('timeout');
if (index > -1) {
return Promise.reject('請(qǐng)求超時(shí)了,請(qǐng)重試!')
}
let statusCode = error.response.status;
if (statusCode) {
switch (statusCode) {
case 401:
Message({
type: 'error',
message: "暫無權(quán)限,請(qǐng)先登陸哦!"
})
toLogin();
break;
case 403:
Message({
type: 'error',
message: "登陸過期,請(qǐng)重新登陸!"
})
localStorage.removeItem("token");
toLogin();
case 500:
Message({
type: 'error',
message: "服務(wù)器異常!"
})
default:
console.log(error.code)
break;
}
}
})
export default service;
Vue-axios封裝
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 網(wǎng)絡(luò)層封裝:避免太多依賴 先創(chuàng)建一個(gè)文件用來封裝axios 第一種方法: //如果有多個(gè)就重新創(chuàng)建,先導(dǎo)入axio...
- vue更新到2.0之后,作者就宣告不再對(duì)vue-resource更新,而是推薦的axios。 vue-resour...
- vue-axios + axios 入坑基礎(chǔ)安裝 最近搞VUE,一大堆懵逼。把平時(shí)需要安裝的! 首先,有時(shí)候直接安...
- 使用vue-resource傳遞數(shù)據(jù) 在Home.vue組件中傳送數(shù)據(jù) src/model/Storage.js中...
- 可能有的人對(duì)vue-resource 和vue-axios比較陌生,也可能用到了都不知道。他其實(shí)就是我們vue請(qǐng)求...