umi-request封装,headers添加参数接口会提示404,不添加是正常的,请问怎么改?

封装部分代码

const request = extend({
  prefix: '/api',// 路径前缀
  errorHandler, // 默认错误处理
  credentials: 'include', // 默认请求是否带上cookie
  timeout: 30000,
});
request.interceptors.request.use(async (url, options) => {
  let hasToken = getToken()
  let refreshToken = getRefreshToken()
  type headerType = {
    Authorization: string | null,
    Timestamp: string | null,
    Sign: string | null,
  }
  let headers: headerType = {
    Authorization: null,
    Timestamp: null,
    Sign: null,
  };
  if (!hasToken && refreshToken) {
    // 重新输入token
  }
  if (hasToken) {
    headers.Authorization = 'Bearer ' + hasToken
  }
  const timestamp = new Date().getTime().toString();
  const sign = md5(timestamp + 'coursezjer_admin');
  headers.Sign = sign;
  headers.Timestamp = timestamp;
  return {
    url,
    options: {
      ...options,
      headers
    },
  };
});

调用部分代码

request.get('/admin/verification/captcha')

如果这样写就会报404,如果将headers中的Sign或者Timestamp去掉任意一个就是正常的,请问是有什么限制吗,还是哪里写错了

之后我使用定值,将Timestamp设置成固定值,也可以调通
这是调通的截图
image.png
这是变量调用接口的截图
image.png

阅读 2.6k
1 个回答

从前端代码来看没有问题。接口谁提供的,你问问。是不是后端处理你的请求头的sign 和 timestamp 的过程中出错了。只能这样猜一下了。你用postman apifox这种工具调试一下,就能确定是不是前端的问题了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏