【问题标题】:CORS Request Error Tomcat 7 & Java ServletCORS 请求错误 Tomcat 7 和 Java Servlet
【发布时间】:2015-08-27 13:21:38
【问题描述】:

我不知何故无法让它工作。我有一个在 Tomcat 7 服务器上运行的 Java Servlet(在 localhost:8080 上运行),我想从不同的 Web 服务(在 localhost:80 上运行)发出 PUT 请求。我已经在 Servlet-Code 和 Tomcat 配置中添加了 CORS-Accept-Header,但不知何故,当我尝试发出 PUT-Request 时,总是会出现此错误:

[Error] Failed to load resource: Origin http://localhost is not allowed by Access-Control-Allow-Origin.

在我的 Java Servlet 中,我定义了以下标头:

response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");
response.addHeader("Access-Control-Max-Age", "86400");

在使用 response.addHeader 之前,我使用了 response.setHeader,但这对我的情况没有影响。 在 tomcat web.xml 配置文件中,我添加了以下几行:

 <filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>*</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

如 tomcat-7-docs 中所述:https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter

我真的看不到我错过了什么

【问题讨论】:

    标签: java tomcat servlets


    【解决方案1】:

    好的,我明白了。这个问题很简单,但给我带来了很多麻烦。我正在用 eclipse 编程,而且我是这个 IDE 的新手。 Eclipse 似乎在我的工作区的二进制 .metadata 文件夹中使用了它自己的 Tomcat 副本。 如果其他人有这个问题:要么更改 Eclipse 的 .metadata 文件夹中的 web.xml 文件(它在其中包含 1:1 的 tomcat 副本),要么设置 eclipse 不使用它自己的 tomcat 副本。

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2020-10-26
      • 2021-11-02
      • 2013-10-11
      • 2012-04-20
      • 2013-10-16
      相关资源
      最近更新 更多