OpenLayers Proxyhost не работи правилно

Както се казва в 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=";" ли е?

Благодаря предварително.

поздрави Mahbubul Haque


person Md. Mahbubul Haque    schedule 05.12.2012    source източник


Отговори (1)


в proxy.cgi има списък с разрешени хостове в горната част на файла (като по-долу).

allowedHosts = ['www.openlayers.org', 'openlayers.org', 
            'labs.metacarta.com', 'world.freemap.in', 
            'prototype.openmnnd.org', 'geo.openplans.org',
            'sigma.openplans.org', 'demo.opengeo.org',
            'www.openstreetmap.org', 'sample.azavea.com',
            'v2.suite.opengeo.org', 'v-swe.uni-muenster.de:8080', 
            'vmap0.tiles.osgeo.org', 'www.openrouteservice.org'] 

Ако нямате нужда да добавите домейна (и порта във вашия случай, тъй като не е 80) на сървъра, с който се свързвате, в този случай:

ec2-23-22-12-137.compute-1.amazonaws.com:8080

Ако това не е източникът на проблема, можете ли да предоставите малко повече информация от програма за отстраняване на грешки в JavaScript, като например firebug, показваща грешки или предупреждения, когато се опитате да направите заявката през проксито.

АКТУАЛИЗАЦИЯ

От тестването на вашия прокси на вашия сървър изглежда, че имате проблемна връзка към порт 8080 от вашата мрежа.

това може да се тества чрез изпробване на URL адресите

http://kleincom.com/cgi-bin/proxy.cgi?url=http://v-swe.uni-muenster.de:8080

и

http://kleincom.com/cgi-bin/proxy.cgi?url=http://labs.metacarta.com

URL адресът на metacarta работи добре, но URL адресът на muenster се проваля поради проблем с изчакване. Бих искал да погледна вашата настройка на външната защитна стена или подобна.

person olly_uk    schedule 05.12.2012
comment
Вече добавих домейна в променлива allowedHosts в cgi скрипт. и с 8080 порт добавих ec2-23-22- 12-137.compute-1.amazonaws.com:8080 - person Md. Mahbubul Haque; 05.12.2012
comment
добре, тогава можете ли да добавите малко информация от програма за отстраняване на грешки в javascript за това какво всъщност се случва, когато поискате информация? - person olly_uk; 05.12.2012
comment
няма да го дебъгвам вместо вас! просто публикувайте всеки съответен резултат за отстраняване на грешки във вашия въпрос по-горе - person olly_uk; 05.12.2012
comment
когато щракна върху картата, тя изпраща XMLHttpRequest, който url е: kleincom.com/cgi- bin/proxy.cgi?url= - person Md. Mahbubul Haque; 05.12.2012
comment
когато щракна върху картата, тя изпраща XMLHttpRequest, който url е: kleincom.com/cgi-bin/.... Той изпраща заявката и отговорът е: Възникна някаква неочаквана грешка. Текстът на грешката беше: ‹urlopen error (110, 'Връзката изтече')› Но ако поставя url ec2-23-22-12-137.compute-1.amazonaws.com:8080/geoserver/KCRE/... на браузър получавам изтеглен gml файл, който съдържа очаквания резултат. - person Md. Mahbubul Haque; 05.12.2012