| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import axios from 'axios'
- import router from '@/router'
- import { Toast } from 'vant'
- // 根据环境不同引入不同api地址
- import { baseApi } from '@/config'
- // create an axios instance
- const service = axios.create({
- baseURL: baseApi, // url = base api url + request url
- withCredentials: false, // send cookies when cross-domain requests
- timeout: 15000 // request timeout
- })
- let loading;
- // request拦截器
- service.interceptors.request.use(
- config => {
- // 不传递默认开启loading
- if (!config.hideLoading) {
- // loading
- loading = Toast.loading({
- forbidClick: true
- })
- }
- const token = sessionStorage.getItem('access_token');
- if (token) {
- config.headers['Authorization'] = 'Bearer ' + token;
- }
- return config
- },
- error => {
- // do something with request error
- console.log(error) // for debug
- return Promise.reject(error)
- }
- )
- let success = response => {
- if (loading) Toast.clear();
- // 二进制数据则直接返回
- if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') {
- return response.data
- }
- let res = response.data;
- if(res.code === 200){
- return res;
- }
- if (res.code === 401) {
- Toast.fail(res.msg);
- sessionStorage.clear();
- router.push('/login');
- return Promise.reject(res.msg);
- }
- if (res.code === 500) {
- Toast.fail('请求错误');
- return Promise.reject(res.msg);
- }
- Toast.fail(res.msg);
- return Promise.reject(res.msg);
- }
- let error = error => {
- if (loading) Toast.clear();
- console.log('err' + error)
- Toast.fail('请求异常,请稍后重试');
- return Promise.reject(error)
- }
- // respone拦截器
- service.interceptors.response.use(success,error);
- export default service
|