用openlayer调用geoserver 9发布的wms服务,出现的跨域问题解法

时间:2024-03-19 20:40:26

前提: geoserver 9为server安装方式。java, tomcat由安装包自行安装。

问题: 用openlayer调用geoserver 9发布的wms服务,出现的跨域问题

解法:

1.  在http://search.maven.org里,下载cors-filter-1.7.jar与java-property-utils-1.9.jar, 此两文件在上篇arcgis跨域问题时已下载,可直接使用。

2.  将两jar文件拷到D:\Program Files (x86)\GeoServer 2.9.0\webapps\geoserver\WEB-INF\lib里,这是geoserver的安装路径。

3.  修改D:\Program Files (x86)\GeoServer 2.9.0\webapps\geoserver\WEB-INF\web.xml

1)   拷下面代码到  <filter-mapping>之前。

用openlayer调用geoserver 9发布的wms服务,出现的跨域问题解法

    <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) 拷下面代码到  <welcome-file用openlayer调用geoserver 9发布的wms服务,出现的跨域问题解法-lis>之前。

   <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

4. 运行D:\Program Files (x86)\GeoServer 2.9.0\bin\shutdown.bat  关闭geoserver 服务

5. 运行D:\Program Files (x86)\GeoServer 2.9.0\bin\startup.bat  重启geoserver 服务

再查看openlayer调用页面,问题解决。