vue token 过期要在哪重新请求_vue.js 拦截器

3bad330520b4f613b38adce2a101b84d.png

import axios from "axios";

import { Message, MessageBox, Loading } from "element-ui";

let loading;

function startLoading() { //使用Element loading-start 方法

loading = Loading.service({

lock: true,

text: '拼命加载中...',

background:'rgba(255,255,255,0)',

})

}

function endLoading() { //使用Element loading-close 方法

loading.close()

}

axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8"; // 创建axios实例

const service = axios.create({

baseURL: "", // api 的 base_url

timeout: 5000 // 请求超时时间5秒

});

// request拦截器

service.interceptors.request.use(

config => {

// if (store.getters.token) {

// config.headers['access_token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改

config.headers["Authorization"] = "Bearer bd864add-0891-438a-a6ad-cf68973ab8cd"; // 在请求头加token

// config.headers['Authorization'] = 'Bearer ' // 在请求头加token

// config.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'

// }

startLoading();

return config;

},

error => {

// Do something with request error

console.log(error); // for debug

Promise.reject(error);

}

);

// response 拦截器

service.interceptors.response.use(

response => {

endLoading();

// 请求成功 就返回值 默认没有判断

// return response.data

/**

* code为非20000是抛错 可结合自己业务进行修改

*/

const res = response;

if (res.status !== 20000) {

Message({

message: res.message,

type: "error",

duration: 5 * 1000

});

// 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了;

if (res.code === 50008 || res.code === 50012 || res.code === 401) {

MessageBox.confirm(

"你已被登出,可以取消继续留在该页面,或者重新登录",

"确定登出",

{

confirmButtonText: "重新登录",

cancelButtonText: "取消",

type: "warning"

}

).then(() => {

// store.dispatch('FedLogOut').then(() => {

// location.reload() // 为了重新实例化vue-router对象 避免bug

// })

});

}

return Promise.reject("error");

} else {

return response.data;

}

},

error => {

console.log("err" + error); // for debug

Message({

message: "接口请求失败",

type: "error"

// duration: 5 * 1000

});

return Promise.reject(error);

// if (error.response) {

// switch (error.response.status) {

// case 401:

// this.$store.commit('del_token')

// router.replace({

// path: '/login',

// query: { redirect: router.currentRoute.fullPath }// 登录成功后跳入浏览的当前页面

// })

// }

// }

// return Promise.reject(error)

}

);

export default service;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值