axios 的 headers 设置可能有点小下头:GitHub sinsong/Meirin-WebUI src/utils/api.js:30-34

const meirinPrivileged = axios.create({
  baseURL: meirin_api_baseurl,
  headers: {
    'X-Meirin-Credential': () => getCredential()
  }
})

这么写代码发过去的请求是:

GET /v1/policy/count HTTP/1.1
X-Meirin-Credential: () => getCredential()

就离谱

@literalkernel 应该是直接调了ToString方法,显然你应该在create外面get credential,你要是用ts估计能看到这里不能传函数 :ac_acg025:

@mashiro :bili_emoji_xiaoku: 不能传函数啊。然后我换拦截器实现了,主要是我在前端需要整个逻辑:这个凭据credential是可以配置(整了个页面和表单,存在localStorage里)的,所以得每次请求都读取一下。

@literalkernel 对的,这种一般在interceptor里面封装。而且其实你的写法本来就有点问题,你的相当于:
key:function
但是实际上你应该调用这个函数:
key:function()

@mashiro 我一开始就是写的 key: function(),但是我很快就发现问题,相当于创建时调用一次,然后就固定下来了。。。

Follow

@literalkernel 所以还是写在拦截器里面合适

· · Web · 0 · 0 · 0
Sign in to participate in the conversation
小森林

每个人都有属于自己的一片森林,也许我们从来不曾走过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。愿这里,成为属于你的小森林。