2016-09-27 198 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 /' –