1.api.js文件
import axios from 'axios'
import router from '../router'
拦截器:
const service = axios.create({
//baseURL: '/api', // url = base url + request url
//试试这里直接配置url
baseURL: 'https://api.example.com/api',
// withCredentials: true, // send cookies when cross-domain requests
timeout: 20000, // request timeout
headers: {
'X-Requested-With': 'XMLHttpRequest',
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}, // request timeout
})
service.interceptors.request.use(function (config) { //请求拦截器
if (localStorage.getItem('Authortokenasf')) {
config.headers['x-token'] = localStorage.getItem('Authortokenasf');
}
return config;
}, function (error) {
return Promise.reject(error); //返回被拒绝的原因
});
service.interceptors.response.use(function (response) { //响应拦截器
console.log(response, "响应数据");
const data = response.data
/**
* code:0 表示成功;400表示出错
*/
if (data.status == 401 || data.msg == '请先登录') {
Notify({
type: 'danger',
message: "登录信息已过期,请重新登录"
})
router.replace({
path: '/' // 到登录页重新获取token
})
localStorage.removeItem('Authortokenasf')
localStorage.removeItem('usertype')
sessionStorage.removeItem('fhcompanyId')
sessionStorage.removeItem('havecompany')
} else if (data.code == 0 || data.code == 1) {
// console.log('data',data)
return response
// return Promise.resolve(data)
} else {
const err = {}
err.code = response.data.code
err.msg = response.data.msg
if (data.msg != "运行时异常:请完善基本信息") {
Notify({
type: 'danger',
message: err.msg
});
}
return response
}
}, function (err) {
// 返回状态码不为200时候的错误处理
Notify({
type: 'danger',
message: err.message
})
Toast.clear()
console.log(err.message)
if (err && err.response) {
switch (err.response.status) {
case 400:
err.message = '请求错误'
Notify({
type: 'danger',
message: err.message
});
break
case 401:
err.message = '未授权,请登录'
Notify({
type: 'danger',
message: err.message
});
break
case 403:
err.message = '拒绝访问'
Notify({
type: 'danger',
message: err.message
});
break
case 404:
err.message = `请求地址出错: ${err.response.config.url}`
Notify({
type: 'danger',
message: err.message
});
break
case 408:
err.message = '请求超时'
Notify({
type: 'danger',
message: err.message
});
break
case 500:
err.message = '服务器内部错误'
Notify({
type: 'danger',
message: err.message
});
break
case 501:
err.message = '服务未实现'
Notify({
type: 'danger',
message: err.message
});
break
case 502:
err.message = '操作失败,请重试'
Notify({
type: 'danger',
message: err.message
});
break
case 503:
err.message = '服务不可用'
Notify({
type: 'danger',
message: err.message
});
break
case 504:
err.message = '网关超时'
Notify({
type: 'danger',
message: err.message
});
break
case 505:
err.message = 'HTTP版本不受支持'
Notify({
type: 'danger',
message: err.message
});
break
default:
}
}
return Promise.reject(err);
});
export default service
2.调接口一直带有token使用
export function getcompany(params) {
return axiosInterceptors({
url: '/gov/company',
method: 'get',
params
})
}
axios的token不用频繁取配置
最新推荐文章于 2024-07-10 14:03:37 发布