我有一个受 HTTP 基本身份验证保护的 API。
当我想针对 API 发出 AJAX 请求时,浏览器发送一个不带有授权标头的 OPTIONS 请求,因此该请求被拒绝,因此浏览器不允许我的 AJAX 调用。
我尝试将 Tomcat 配置为不验证 OPTIONS 请求,但我无法让它工作。
如何在 Tomcat 中禁用 OPTIONS 请求的 HTTP Auth?
答案1
或许这个答案会有所帮助。简而言之,我们必须配置 Tomcat 服务器,以便即使未经身份验证,也能将请求转发到 CorsFilter,使用如下方法:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<!-- no auth-constraint here -->
</security-constraint>
确保不要包含“auth-constraint”元素。因此,以下示例将不起作用:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<auth-constraint/><!-- this will prevent OPTIONS request -->
</security-constraint>
答案2
你必须为你的目的写一个白名单
更多信息请参阅:禁止 Tomcat 上的 HTTP 方法区分大小写吗?