【发布时间】:2014-08-14 17:17:19
【问题描述】:
我想启用 tomcat CORS 过滤器,我在 web.xml 中添加了这个:
<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>
但它不起作用。 我尝试使用自定义过滤器:
<filter>
<filter-name>SimpleCORSFilter</filter-name>
<filter-class>com.common.SimpleCORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SimpleCORSFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
有了这个类:
public class SimpleCORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, res);
}
}
这很好用,你能告诉我为什么吗? 我不知道这是否重要,但我正在使用 Spring Framework。
【问题讨论】:
-
你是如何测试
CorsFilter的?使用 AJAX 请求还是使用简单的 GET? -
两者,但萤火虫不显示访问控制标头
-
您能否提供一个完整的示例来说明如何设置 SimpleCORSFilter?进口商品有哪些?班级住在哪里?我想将该类添加到 tomcat,但不知道如何。
标签: java tomcat web-applications cors