全部, 我正在嘗試在Tomcat 7.0.52上爲Geoserver啓用CORS。CORS - Tomcat - Geoserver
我修改web.xml文件中的conf在Tomcat中,如 http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter
指定但是,這並沒有幫助設置在頭交叉的起源。 我甚至試過它對geoserver web-inf/web.xml沒有幫助。
任何建議表示讚賞。
謝謝!
全部, 我正在嘗試在Tomcat 7.0.52上爲Geoserver啓用CORS。CORS - Tomcat - Geoserver
我修改web.xml文件中的conf在Tomcat中,如 http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter
指定但是,這並沒有幫助設置在頭交叉的起源。 我甚至試過它對geoserver web-inf/web.xml沒有幫助。
任何建議表示讚賞。
謝謝!
我需要這樣做,以避免在OpenLayers中使用代理。
由於我運行Ubuntu 12.04,我已經安裝了Tomcat 7.0.55,而不是默認的7.0.26(從軟件包安裝)。
要添加CORS標頭,我簡單地添加到$CATALINA_HOME/conf/web.xml
下面幾行:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
,然後重新啓動Tomcat。
例如,當我嘗試從利用Geoserver的URL http://development.localhost.lan/geoserver/wfs
從http://localhost:3000
運行我的應用程序獲取我得到以下標題:
請求頭:
POST /geoserver/wfs HTTP/1.1
Host: development.localhost.lan
Origin: http://localhost:3000
X-Requested-With: XMLHttpRequest
(...)
響應頭:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:3000
Connection:Keep-Alive
Content-Disposition:inline; filename=geoserver-GetFeature.text
Content-Encoding:gzip
Content-Length:469
Content-Type:text/xml; subtype=gml/3.1.1
Date:Tue, 29 Jul 2014 21:31:08 GMT
Keep-Alive:timeout=5, max=100
Server:Apache-Coyote/1.1
這與Chrome(Ver。 35.0.1916.153)和Firefox(版本31.0)。
對於我來說,文件是'/ var/lib/tomcat7/webapps/geoserver/WEB-INF/web.xml' –
我需要以下添加到CorsFilter以確保預檢「選項」請求被允許
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
如果需要其他方法,這是@jgrocha給出的答案的附錄。 – sbk
嘿傢伙在web.xml
<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>*</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
加入此腳本後,請改變你的阿賈克斯這樣的網址
var boxsource = new ol.source.Vector({
//url: '{{ resource.ows_url|safe }}',
url: 'http://localhost:8080/geoserver/wfs?srsName=EPSG%3A4326&typename=cite:box&outputFormat=json&version=1.1.0&service=WFS&request=GetFeature',
format: new ol.format.GeoJSON(),
params: {'LAYERS': '{{ resource.typename }}'},
//STYLES:{'LAYERS': '{{ resource.typename }}'}
});
那麼它將是okey。我保證
編輯您的答案格式 – AsifAli72090
鑑於沒有像7.0.57這樣的Tomcat版本,您實際使用哪個版本?確切地說,你添加了哪些web.xml文件。 –
對不起,錯誤 - 7.0.52 – user1680784
出於測試目的,它是上述鏈接中「這是一個更高級的配置示例,覆蓋默認值:」下的xml文件。我明白這是廣泛的,但經過測試後,它可以修改爲更合適的一個。 – user1680784