Re: Странная ощибка GetFeatureInfo
Добавлено: 04 май 2011, 14:32
Отличия только в версии. На это это никак не реагирует?
Геоинформационные системы (ГИС) и Дистанционное зондирование Земли
https://gis-lab.info/forum/
Код: Выделить всё
info = new OpenLayers.Control.WMSGetFeatureInfo({
url:'http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map', /*URL STRAIGHT*/
layerUrls:['http://localhost:8080/WMSTileCache-V0.2/WMS/water'],
queryVisible: true,
eventListeners: {
getfeatureinfo: function(event) {
map.addPopup(new OpenLayers.Popup.FramedCloud(
"chicken",
map.getLonLatFromPixel(event.xy),
null,
event.text,
null,
true
));
}
}
});
map.addControl(info);
info.activate();
Код: Выделить всё
CONFIG "MS_ERRORFILE" "c:/temp/error.log"
DEBUG 5
Хорошо, а если его включить?Proxy не использую
И в попапе опятьOpenLayers is not defined
OpenLayers.ProxyHost = "proxy.cgi?url=";
#! C:/Python27/python.exe -u """This is a blind proxy that we use to get around browser restrictions that prevent the Javascript from loading pages not on the same server as the Javascript. This has several problems: it's less efficient, it might break some sites, and it's a security risk because people can use this proxy to browse the web and possibly do bad stuff with it. It only loads pages via http and https, but it can load any content type. It supports GET and POST requests.""" import urllib2 import cgi import sys, os # Designed to prevent Open Proxy type stuff. allowedHosts = ['localhost','localhost:8080','www.openlayers.org'] method = os.environ["REQUEST_METHOD"] if method == "POST": qs = os.environ["QUERY_STRING"] d = cgi.parse_qs(qs) if d.has_key("url"): url = d["url"][0] else: url = "http://www.openlayers.org" else: fs = cgi.FieldStorage() url = fs.getvalue('url', "http://www.openlayers.org") try: host = url.split("/")[2] if allowedHosts and not host in allowedHosts: print "Status: 502 Bad Gateway" print "Content-Type: text/plain" print print "This proxy does not allow you to access that location (%s)." % (host,) print print os.environ elif url.startswith("http://") or url.startswith("https://"): if method == "POST": length = int(os.environ["CONTENT_LENGTH"]) headers = {"Content-Type": os.environ["CONTENT_TYPE"]} body = sys.stdin.read(length) r = urllib2.Request(url, body, headers) y = urllib2.urlopen(r) else: y = urllib2.urlopen(url) # print content type header i = y.info() if i.has_key("Content-Type"): print "Content-Type: %s" % (i["Content-Type"]) else: print "Content-Type: text/plain" print print y.read() y.close() else: print "Content-Type: text/plain" print print "Illegal request." except Exception, E: print "Status: 500 Unexpected Error" print "Content-Type: text/plain" print print "Some unexpected error occurred. Error text was:", E
[Fri May 06 18:32:37 2011].500000 CGI Request 1 on process 3140
[Fri May 06 18:32:37 2011].515000 mapserv request processing time (msLoadMap not incl.): 0.015s
[Fri May 06 18:32:37 2011].515000 msFreeMap(): freeing map at 01A4B7A0.
URL для прокси должен быть абсолютным, обычно:OpenLayers.ProxyHost = "proxy.cgi?url=";
Код: Выделить всё
OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
и запрос не происходит .Access to restricted URI denied" code: "1012