axios 封装 request.js

import axios from 'axios';
// 创建一个 axios 对象
const request = axios.create({
baseURL: 'http://localhost:8080',
timeout: 5000
});
// 请求拦截器
request.interceptors.request.use(
(config) => {
config.headers['Content-Type'] = 'application/json;charset=utf-8';
// 直接从 localStorage 获取 JWT 字符串
let token = localStorage.getItem('user');
if (token) {
// 按照规范,JWT 通常以 "Bearer " 开头添加到 Authorization 头中
token = token.replace(/^"(.*)"$/, '$1'); // 去除多余的""引号
config.headers['Authorization'] = `Bearer ${token}`;
// console.log('Request Headers:', config.headers);
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
// 响应拦截器
request.interceptors.response.use(
(response) => {
// response.data 即为后端返回的 Result
let res = response.data;
// 兼容服务端返回的字符串数据
if (typeof res ==='string') {
res = res? JSON.parse(res) : res;
}
return res;
},
(error) => {
console.log('err' + error); // for debug
return Promise.reject(error);
}
);
export default request;
发布于   xiins  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示