2016-09-27 80 views
0

这里我有一个应用程序部署在Tomcat 8实例中。我按照Tomcat 8 document添加CORS过滤器:用基本相同的配置文件Tomcat 8:CORS过滤器不起作用

<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> 

/apache-tomcat-8/conf/Catalina/web.xml 

,当我运行以下命令:

curl -I "http://localhost:8181/MySuperApp/login/" 

HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Cache-Control: no-store, must-revalidate 
Set-Cookie: JSESSIONID=C51BD2982C0EBB7DA73D40E7AE856B93; Path=/MySuperApp/; HttpOnly 
Content-Type: text/html;charset=UTF-8 
Content-Language: en-US 
Content-Length: 883 
Date: Tue, 27 Sep 2016 20:20:11 GMT 

所以基本上,CORS根本没有生效......可能会丢失什么,或者有什么地方我应该检查参数是否可以被覆盖?

回答

0

如果请求指定了Origin标头,则CORS过滤器将只发回Access-Control- *标头。没有Origin,它不是CORS请求。

+0

谢谢,有没有什么办法强制Tomcat的请求来源? – Dreamer

+0

@Dreamer我不确定你的意思是“执行” - 如果你想测试CORS过滤器,你必须发送一个具有“Origin”头的请求,例如, 'curl -I -H'原产地:http://www.example.com'http:// localhost:8181/MySuperApp/login /' –