【问题标题】:How to enable CORS in apache tomcat [duplicate]如何在 apache tomcat 中启用 CORS [重复]
【发布时间】:2014-04-26 21:29:12
【问题描述】:

我正在尝试使用一些跨域的 Web 服务。当我禁用 chrome 的网络安全时,它工作正常。我希望它在没有这个的情况下工作,所以我尝试添加 cross-domain.xml,但它仍然没有工作。当我搜索更多时,开始了解在tomcat中启用CORS。

来自http://www.w3.org/wiki/CORS_Enabled


对于阿帕奇 可以将 Apache 配置为使用 mod_headers 公开此标头。这在 Apache 中默认启用,但是您可能希望通过运行以下命令来确保在部署中启用它:

a2enmod headers

要公开标题,您可以在 、 和 部分或 .htaccess 文件中添加以下行。

<IfModule mod_headers.c>
   Header set Access-Control-Allow-Origin "*"
 </IfModule>

谁能告诉我在 TOMCAT 中的何处添加这些配置以及在确切的文件中。我正在使用eclipse中的tomcat。

感谢任何帮助。

【问题讨论】:

    标签: java eclipse apache tomcat cors


    【解决方案1】:

    Tomcat 中的 CORS 支持是通过过滤器提供的。您需要将此过滤器添加到您的 web.xml 文件中并对其进行配置以符合您的要求。有关可用配置选项的完整详细信息,请参阅Tomcat Documentation

    【讨论】:

    • 感谢您的回复。但我已经在我的 Web.xml 中添加了它,甚至尝试使用 servlet 拦截器为所有响应添加 header 参数,使用 response.setHeader("Access-Control-Allow-Origin","*")。但它不起作用。
    • 即使我已经更改了 web.xml 的配置并添加了 response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600");但仍然面临同样的问题。谁能帮忙。
    • 这是一个旧线程。但是,如果您正在阅读此评论,那么您可能已经正确配置了您的 tomcat。诸如 allowed-origin 之类的 CORS 标头仅对设置了 ORIGIN 标头的请求公开。因此,如果您像我一样只是匆匆浏览文档,您可能会检查浏览器的开发工具并想知道您的标题在哪里。试试这个进行测试: curl -I -H 'Origin: example.com' localhost:8080
    • 不仅可以对 CORS 做同样的事情,而且总体上允许使用某些方法吗?
    【解决方案2】:

    检查这个答案:Set CORS header in Tomcat

    请注意,您需要 Tomcat 7.0.41 或更高版本。

    要知道当前 Tomcat 实例的位置,试试这个:

    System.out.println(System.getProperty("catalina.base"));
    

    您将在控制台视图中看到路径。

    然后在该文件夹中查找 /conf/web.xml,打开它并添加上述链接的行。

    【讨论】:

    • 这个不行,我试过了。
    【解决方案3】:

    只是在正确的解决方案上添加一些额外的信息。请注意,您将需要此类 org.apache.catalina.filters.CorsFilter。所以为了拥有它,如果你的 tomcat 不是 7.0.41 或更高版本,请下载 'tomcat-catalina.7.0.41.jar' 或更高版本(你可以从http://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina 下载)并将其放入'lib' Tomcat安装文件夹中的文件夹。 我实际使用的是 7.0.42 希望对您有所帮助!

    【讨论】:

    • 与其用不同的版本污染tomcat目录,不如建议更新Tomcat 7.0.41或更高版本。
    • 听起来不错:)
    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多