Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight respo

编程知识 更新时间:2023-04-06 11:33:24

在axios请求中出现:

问题描述:
如下图展示,在 请求接口的时候,第一个接口返回200,但是第二个接口却返回0。


上图是请求日本的域名,然而请求国内的域名是没有问题的。

下面对比一下日本预检请求截图

  1. 代码里设置了header 的请求截图 (会报CORS错误)

  2. 设置header信息的代码注释掉重新请求

    对比之后不难发现,多了一个Authorization

然后看一下nginx里请求头部的配置

发现是没有允许Authorization的。

由于接口需要在头部header传递Authorization字段:
vue代码:

执行发送的时候出现以上错误:

意思是预发请求的时候不通过,不再正式发请求

经过反复的测试,发现,header里面包含自定义字段,浏览器是会先发一次options请求,如果请求通过,则继续发送正式的post请求,而如果不通过则返回以上错误

那这样就只能在服务端配置options的请求返回,代码如下:

 加上  “Authorization”
 response.setHeader("Access-Control-Allow-Headers", "Authorization");
    

上面代码需要加入允许的头部Authorization,并且判断请求的方法是options的时候,返回ok(200)给客户端,这样才能继续发正式的post请求。

修改之后成功发了post请求。


问题已经解决, 普及预检知识:

预检

更多推荐

Request header field authorization is not allowed by Access-Control-Allow-Header

本文发布于:2023-04-06 11:33:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/9477cf7e5fa528b236281b1ccd1a369e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:authorization   allowed   field   Request   header

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 49335文章数
  • 14阅读数
  • 0评论数