1. 程式人生 > >geoserver跨域問題解決

geoserver跨域問題解決

    我們通常需要通過ajax跨域訪問GIS服務,GeoServer預設是不支援跨域的,通常直接訪問瀏覽器會報類似:XMLHttpRequest 、not allowed by Access-Control-Allow-Origin的錯誤提示。

一、GeoServer 2.3.2版本設定

1、下載跨域檔案CrossOriginFilter.class並將外掛放入<Geoserver>\webapps\geoserver\WEB-INF\classes下

最後形成的檔案和目錄是:

<Geoserver>\webapps\geoserver\WEB-INF\classes\org\mortbay\servlets\CrossOriginFilter.class

2、設定跨域配置。開啟<Geoserver>\webapps\geoserver\web.xml檔案,找到檔案中<filter>平級的位置,新增如下內容

...    
<filter>        
    <filter-name>cross-origin</filter-name>        
    <filter-class>org.mortbay.servlets.CrossOriginFilter</filter-class>        
    <init-param>            
        <param-name>allowedOrigins</param-name>            
        <param-value>*</param-value>        
    </init-param>        
    <init-param>            
        <param-name>allowedMethods</param-name>            
        <param-value>GET,POST</param-value>        
    </init-param>        
    <init-param>           
        <param-name>allowedHeaders</param-name>            
        <param-value>x-requested-with,content-type</param-value>        
    </init-param>    
</filter>    
...

找到檔案中<filter-mapping>平級的位置,新增如下內容

        ...
        <filter-mapping>
            <filter-name>cross-origin</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        ...

3、重啟GeoServer服務。

二、GeoServer 2.10.1及以上版本設定(通用設定方法)

1、下載跨域jar包

jetty-servlets.jar(下載geoserver使用的對應jetty版本)並將jar包放到<Geoserver>\webapps\geoserver\WEB-INF\lib資料夾下。

2、設定跨域配置。開啟<Geoserver>\webapps\geoserver\WEB-INF\web.xml檔案,找到檔案中<filter>平級的位置,新增如下內容

   <filter>
      <filter-name>cross-origin</filter-name>
      <filter-class>
            org.eclipse.jetty.servlets.CrossOriginFilter
      </filter-class>
      <init-param>
          <param-name>allowedOrigins</param-name>
          <param-value>*</param-value>
      </init-param>
      <init-param> 
          <param-name>allowedMethods</param-name>
          <param-value>GET,POST</param-value>
      </init-param>
      <init-param>
          <param-name>allowedHeaders</param-name>
          <param-value>x-requested-with,content-type</param-value>
      </init-param>
   </filter>

找到檔案中<filter-mapping>平級的位置,新增如下內容

    <filter-name>cross-origin</filter-name>  
    <url-pattern>/*</url-pattern>  
    </filter-mapping>

3、重啟GeoServer服務。 --------------------- 本文來自 懵懂 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/mengdong_zy/article/details/51784781?utm_source=copy

轉載請來源: https://blog.csdn.net/zy332719794/article/details/51784781