ITPub博客

首页 > IT职业 > IT生活 > has been blocked by CORS policy: Re

has been blocked by CORS policy: Re

IT生活 作者:nike_hao 时间:2021-09-09 10:48:34 0 删除 编辑

一个需求中出现了这个问题,折腾了好几天。

背景:需求中接口要过网关,然后就出现了这个跨域的问题。
折腾好久没找到原因,研发,架构,it折腾一圈。

后来发现是接口要求传了自定义参数。浏览器在发送带有自定义的请求头时,浏览器会先向服务器发送OPTIONS预检请求,探测该请求服务端是否允许自定义跨域字段.如果允许,则继续执行请求,如果不允许,则返回错误信息提示错误。

cors的配置信息,其中有allowHeaders配置项,表示服务器支持的请求头信息字段,于是在默认的配置后面加上了在客户端自定义添加的yichehuoban-authkey字段,cors的配置就变成如下:

app.use(cors({
    origin: (ctx) => {
        return "*";
    },
    exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
    maxAge: 5,
    credentials: true,
    allowMethods: ['GET', 'post', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'],
    allowHeaders: ['Content-Type', 'Authorization', 'Accept','yichehuoban-authkey'],
    AccessControlAllowHeaders: "*"

至此终于解决了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3643/viewspace-2826347/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    84
  • 访问量
    668