1. 程式人生 > >使用CORS實現跨域的方式

使用CORS實現跨域的方式

     跨域是我們日常專案中經常遇到的問題,之前所使用的跨域解決方案是使用jsonp,但是如果某天需求變了,某功能需要改成支援POST,因為傳輸的資料量比較大,GET形式搞不定,這時就需要CORS出場了。。

     CORS是一個w3c標準,全稱是跨域資源共享,它允許瀏覽器向跨源伺服器傳送XMLHttpRequest請求,從而克服了ajax只能同源使用的限制

     CORS需要瀏覽器和伺服器同時支援,目前所有的瀏覽器都已經支援CORS,(IE瀏覽器不能低於ie10),所以我們只需要配置伺服器即可。這裡以配置tomcat為例。。

首先要在tomcat的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>

然後在tomcat的安裝路徑下的bin資料夾下新增兩個jar包:cors-filter-1.7.jar  和 java-property-utils-1.9.jar

如果找不到這兩個jar包的話,可以去http://download.csdn.net/detail/liuxins/9725785找或者直接私信給我。

之後便可以進行跨域請求了。。。

更多關於CORS具體的實現方式,請參考:點選開啟連結