想使用 umi request 的拦截器为请求统一加上 jwt token,但是参考 ant design pro V5 的文档,始终不生效。
无效的配置
如果参考官方的文档 https://beta-pro.ant.design/docs/request-cn, 修改 src/app.tsx
import type { RequestConfig, RunTimeLayoutConfig } from 'umi';
export const request: RequestConfig = {
errorHandler,
// 新增自动添加AccessToken的请求前拦截器
requestInterceptors: [authHeaderInterceptor],
};
这个配置根本不会起作用,从浏览器看网络请求头并没有任何变化。关键文档还无耻地宣称:
等同于 umi-request 的 request.interceptors.request.use()
解决方法 (正确的配置)
修改:
src/services/ant-design-pro/api.ts
使用 umi-request 替换 umi 的配置。
//import { request } from 'umi';
import request from 'umi-request';
// request拦截器, 改变url 或 options.
request.interceptors.request.use((url, options) => {
let token = localStorage.getItem('token');
if (null === token) {
token = '';
}
const authHeader = { Authorization: `Bearer ${token}` };
return {
url: url,
options: { ...options, interceptors: true, headers: authHeader },
};
});
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式
谈笑风生
None (来自: 中国 浙江 温州 电信) 3年前
nobody (来自: 中国 上海 上海 电信) 2年前
santiago (来自: 中国 广东 移动) 2年前