在 Tomcat 中停用 OPTIONS 請求的 HTTP 驗證

在 Tomcat 中停用 OPTIONS 請求的 HTTP 驗證

我有一個受 HTTP 基本驗證保護的 API。

當我想要針對 API 發出 AJAX 請求時,瀏覽器會發送一個不攜帶 Authorization 標頭的 OPTIONS 請求,因此它會被拒絕,因此瀏覽器不允許我的 AJAX 呼叫。

我嘗試將 Tomcat 配置為不驗證 OPTIONS 請求,但未能使其正常工作。

如何在 Tomcat 中停用 OPTIONS 請求的 HTTP 驗證?

答案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 方法區分大小寫?

相關內容