场景

调用一个接口,需要在header的Referer里设置某个值,否则会报错(业务需求)。
然而实际上不能在代码里显式地设置:

export const getGroups = (productId: number) => {
  return axios
    .post(
      Urls.getGroups,
      {
       // 参数
      },
      {
        headers: {
          Referer: 'xxx',
        },
      },
    )
    .then((res) => res.data.data)
}

会报错:Refused to set unsafe header

本地开发环境的解决方法

对本地开发环境有效的解决方法:
vite.config.ts配置代理的地方配置Referer即可:

    server: {
      port: 80,
      proxy: {
        '/zt': {
          target: 'xxxx',
          changeOrigin: true,
          ws: false,
          rewrite: (path) => path.replace(/^\/zt/, ''),
          headers: {
            Referer: 'xxxx',
          },
        },
      },
    },

这样的话本地开发环境就能调通。

但是这样做不好,最好是能从自己的服务端直接拿到想要的数据,而不是伪装一下去请求别的服务。
最终这个地方改成请求自己的服务了(无需设置Referer)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐