js資源跨域訪問的問題

jiym發表於2017-01-05

最近用cesium載入自己釋出的WMS底圖服務,遇到資源跨域報錯,主要是沒設定資源跨域訪問,查了一些資料,這裡總結一下:

1.Tomcat6、Tomcat7釋出的資源跨域設定:

需要下載cors-filter-1.7.jar、Java-property-utils-1.9.jar這兩個庫檔案,放到tomcat的lib目錄下,然後配置專案的web.xml檔案,在web.xml中新增如下內容:(注意在web.xml中的web-app標籤下首位的位置新增)

<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>
2.IIS釋出的資源跨域設定

控制皮膚>系統和安全>管理工具>IIS管理器(win7下),點開Internet資訊服務(IIS)管理,找到 HTTP 相應標頭,在標頭中增加屬性Access-Control-Allow-Headers值為Content-Type, api_key, Authorization,以及屬性Access-Control-Allow-Origin值為*,確定。


相關文章