gpt4 book ai didi

javascript - Tomcat 的 CORS 问题

转载 作者:行者123 更新时间:2023-12-03 08:38:08 25 4
gpt4 key购买 nike

我们有一个 tomcat Web 服务器 (server1),它托管着几个包含 JavaScript 的网页,用于调用托管在不同 Web 服务器 (server2) 上的后端 API。

当我导航到 server1 上的网页时,它抛出错误 -

“跨源请求被阻止:同源策略不允许读取 server2/api 上的远程资源。(原因:CORS 请求失败)。”

当我直接从 POST 客户端调用 server2 上的 api 时,我能够得到响应。

我知道我们必须在服务器上启用 CORS。但是我们应该在哪台服务器上启用 CORS?是托管网页的 Tomcat 服务器 (server1) 还是托管 API 的 API 服务器 (server2)?

此外,我们尝试通过按照http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter添加过滤器来在Tomcat上启用CORS但这并没有帮助。

请指教。

问候,里特维克

最佳答案

CORS 需要调用接收者允许或禁止。在您的场景中,您需要 server2 来允许 server1 的连接。

<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

确保您的白名单包含正确的 URL,例如 https://server1:8081/,因为所有协议(protocol)、主机和端口都需要匹配!

http://enable-cors.org/server_tomcat.html

关于javascript - Tomcat 的 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com