我坐下来调试了一下,org.apache.catalina.filters.CorsFilter
以找出禁止该请求的原因。希望这可以在将来帮助某人。
根据W3 CORS规范第6.2节“预检请求”,如果提交的任何标头与允许的标头不匹配,则预检必须拒绝该请求。
CorsFilter 的默认配置cors.allowed.headers
(与您的情况一样)不包括Authorization
与请求一起提交的标头。
我更新了cors.allowed.headers
过滤器设置以接受authorization
标题,并且预检请求现在已成功。
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization</param-value>
</init-param>
</filter>
当然,我不确定为什么authorization
默认情况下,CORS过滤器不允许使用标头。