我试图用OpenLayers (v2.12)加载WFS层,但不幸的是,在向wfs服务器发出HTTP请求之后,加载中断了。FireBug显示我的服务器发送一个空响应。没有检测到错误。在较早的OpenLayers版本(v2.8)中,我在另一个应用程序中使用的是无选项请求。这段旧代码发送了一个纯HTTP GET,如下所示:
http://myWfsServer/wfs?typename=someName&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&SRS=EPSG%3A4326&BBOX=...下面是当前的代码
map = new OpenLayers.Map( 'map',{
maxExtent:OpenLayers.Bounds.fromArray([7,47,10,49]),
units: 'm'});
layer = new OpenLayers.Layer.OSM( "Simple OSM Map","http://myWfsServer/tiles/${z}/${x}/${y}.png");
map.addLayer(layer);
wfsLayer = new OpenLayers.Layer.Vector("WFS", {
projection: "EPSG:4326",
maxExtent: OpenLayers.Bounds.fromArray([7,47,10,49]),
strategies : [new OpenLayers.Strategy.BBOX()],
protocol : new OpenLayers.Protocol.WFS.v1_0_0({
url : "http://myWfsServer/wfs",
featureType : "ms:lsaId",
featureNS : "http://mapserver.gis.umn.edu/mapserver",
format: new OpenLayers.Format.WFST.v1_0_0({
featureType: "ms:lsaId",
featureNS: "http://mapserver.gis.umn.edu/mapserver"})
})
});
map.addLayer(wfsLayer);
map.setCenter(new OpenLayers.LonLat(9,48).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()), 16); 问题1:是否有一种方法可以跳过这个请求并继续使用标准的GET请求,就像以前的OpenLayers版本一样?
问题2:OpenLayers的预期反应是什么?
发布于 2012-09-20 20:50:53
问题解决了。选项请求来自浏览器,而不是来自OpenLayers。原因是WFS服务器不是服务器提供的web应用程序。此请求与允许跨域访问有关。
问题1:让应用程序主机提供WFS数据。例如,将Apache配置为原始WFS的代理。
问题2:没有想法:-D
https://stackoverflow.com/questions/12520432
复制相似问题