面试题答案
一键面试- 设置请求拦截器添加token:
- 在Vue应用中,通常在
main.js
文件里配置Axios拦截器。首先引入Axios,然后使用axios.interceptors.request.use
方法来添加请求拦截器。 - 假设token存储在
localStorage
中,代码示例如下:
- 在Vue应用中,通常在
import axios from 'axios';
// 创建Axios实例
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url
timeout: 5000 // 请求超时时间
});
// 请求拦截器
service.interceptors.request.use(
config => {
const token = localStorage.getItem('token');
if (token) {
config.headers['Authorization'] = `Bearer ${token}`;
}
return config;
},
error => {
return Promise.reject(error);
}
);
- 设置响应拦截器处理不同HTTP状态码的错误情况:
- 使用
axios.interceptors.response.use
方法来添加响应拦截器。在这个拦截器中,可以根据不同的HTTP状态码进行相应的错误处理。 - 代码示例如下:
- 使用
// 响应拦截器
service.interceptors.response.use(
response => {
return response.data;
},
error => {
const status = error.response.status;
if (status === 401) {
// 处理401错误,例如跳转到登录页面
console.error('401错误:未授权,请重新登录');
// 假设使用Vue Router,可进行如下操作
// router.push('/login');
} else if (status === 500) {
console.error('500错误:服务器内部错误');
}
return Promise.reject(error);
}
);
在实际应用中,还可以根据具体业务需求,对不同的状态码进行更详细的处理,比如显示友好的错误提示给用户等。同时,以上代码中的process.env.VUE_APP_BASE_API
是一个环境变量,需根据实际项目情况进行配置。router
需先引入并正确配置Vue Router。