正如在http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#ProxyHost中所说,我确实将 proxy.cgi 文件放在了文档所说的服务器中,并且在转到“http:/ /mydomain.com/cgi-bin/proxy.cgi”。这意味着为服务器正确设置了代理。但是当我尝试在我的脚本中使用这个代理时,它不起作用。我把“ OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
”放在我的脚本中。以便可以使用代理。
我的代码在这里不起作用。
ainSelect = new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://ec2-23-22-12-137.compute-1.amazonaws.com:8080/geoserver/KCRE/wms',
title: 'Identify features by clicking',
layers: [lyrParcels],
queryVisible: true
});
ainSelect.infoFormat = 'application/vnd.ogc.gml';
ainSelect.events.register("getfeatureinfo", this, pickAINid);
map.addControl(ainSelect);
ainSelect.activate();
而pickAINid函数是:
function pickAINid(e) {
//alert(e.features.length);
if (e.features && e.features.length) {
var val = e.features[0].attributes.ain;
alert(val);
//document.getElementById('roadId').value = val;
}
}
所以它应该在我点击地图时提醒我 AIN 号码。据我所知,e.features.length = 0。这意味着 WMSGetFeatureInfo 无法正常工作。
请注意我已经使用了这些层:[lyrParcels] 我创建了那个层,在此之前我没有在这里给出代码。
还有一点。当我从本地运行此代码时,此代码运行良好。
谁能告诉我我做错了什么?是在这条“ OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
”线上吗?
提前致谢。
问候马布布尔哈克