1. 程式人生 > >tomcat下CORS(跨域資源共享) 的配置

tomcat下CORS(跨域資源共享) 的配置

CORS介紹

   它在維基百科上的定義是:跨域資源共享(CORS )是一種網路瀏覽器的技術規範,它為Web伺服器定義了一種方式,允許網頁從不同的域訪問其資源。而這種訪問是被同源策略所禁止的。CORS系統定義了一種瀏覽器和伺服器互動的方式來確定是否允許跨域請求。 它是一個妥協,有更大的靈活性,但比起簡單地允許所有這些的要求來說更加安全。

   而W3C的官方文件目前還是工作草案,但是正在朝著W3C推薦的方向前進。

   簡言之,CORS就是為了讓AJAX可以實現可控的跨域訪問而生的。

Tomcat下的配置

   下載cors-filter-1.7.jar,java-property-utils-1.9.jar這兩個庫檔案,放到lib目錄下。(可在

http://search.maven.org上查詢並下載。)工程專案中web.xml中的配置如下:  

<filter>
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    <init-param>
     <param-name>cors.allowOrigin</param-name>
        <param-value>*</param-value>
    </init-param>
    <init-param>
     <param-name>cors.supportedMethods</param-name>
        <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
    </init-param>
    <init-param>
     <param-name>cors.supportedHeaders</param-name>
        <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
    </init-param>
    <init-param>
        <param-name>cors.exposedHeaders</param-name>
        <param-value>Set-Cookie</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportsCredentials</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>