|
|
// axiosConfig.js
|
|
|
import axios from 'axios';
|
|
|
import {getToken} from '@/token/auth' // 注意这里使用了解构赋值来导入getToken函数
|
|
|
|
|
|
// 创建axios实例
|
|
|
const service = axios.create({
|
|
|
// 去vue.config.js文件改baseurl!!
|
|
|
baseURL: '/api', // 注意!! 这里全局统一加上了 '/api' 前缀,但是vue.config.js文件在发送请求时去掉了/api,所以页面的请求接口若有/api还是要携带/api
|
|
|
timeout: 5000, // 请求超时时间
|
|
|
});
|
|
|
|
|
|
// 请求拦截器
|
|
|
service.interceptors.request.use(
|
|
|
config => {
|
|
|
// 在发送请求之前做些什么
|
|
|
const token = getToken(); // 获取token
|
|
|
// console.log('请求拦截器的token是:' +token)
|
|
|
console.log('Request Config:', config);
|
|
|
if (token) {
|
|
|
config.headers['Authorization'] = `Bearer ${token}`; // 设置token
|
|
|
// axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
|
|
|
}
|
|
|
config.headers['Accept'] = 'application/json';
|
|
|
return config;
|
|
|
},
|
|
|
error => {
|
|
|
// 请求错误
|
|
|
console.error('Request Error:', error);
|
|
|
return Promise.reject(error);
|
|
|
}
|
|
|
);
|
|
|
|
|
|
//响应拦截器
|
|
|
service.interceptors.response.use(
|
|
|
response => {
|
|
|
const res = response.data;
|
|
|
console.log(res)
|
|
|
return res;
|
|
|
},
|
|
|
error => {
|
|
|
console.error('响应拦截器errorMessage:', error.message);
|
|
|
return Promise.reject(error);
|
|
|
}
|
|
|
);
|
|
|
|
|
|
export default service; |