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包
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