为了账号安全,请及时绑定邮箱和手机立即绑定

has been blocked by CORS policy: Request header fiel...

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

背景:需求中接口要过网关,然后就出现了这个跨域的问题。
折腾好久没找到原因,研发,架构,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: "*"

至此终于解决了。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消