1. 程式人生 > >tomcat設定跨域訪問

tomcat設定跨域訪問

現在開發流行前後端分離,前端使用Ajax+html寫頁面,後端提供介面,便於以後開發和維護,但是這樣也涉及到一個問題,前端在開發的時候頁面不在後端專案,可能無法訪問,所以tomcat要配置跨域訪問,可以解決這個問題。

首先需要在tomcat中的lib資料夾增加兩個jar包

1.cors-filter-2.4.jar  2.java-property-utils-1.9.1.jar

然後需要在Javaweb工程的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>  

這樣就可以了,要注意的一點是,火狐和360急速等瀏覽器預設支援跨域訪問,而chrome預設是不支援跨域訪問的,如果一定要使用chrome跨域訪問的話,需要在chrome快捷方式後面加一段程式碼 , --args --disable-web-security --user-data-dir 如下圖