Страница 1 из 1

OpenLayers: пустой ответ на запрос GetFeatureInfo

Добавлено: 27 фев 2010, 11:30
Salex
Использую openlayers+mapserver. Карта нормально отображается, перемещается и масштабируется, проблемы начинаются, когда пытаюсь получить информацию об объекте. Использую такой код:

Код: Выделить всё

map.events.register('click', map, function (e) {
            var url =  build.getFullRequestString({
                            REQUEST: "GetFeatureInfo",
                            EXCEPTIONS: "application/vnd.ogc.se_inimage",
                            BBOX: map.getExtent().toBBOX(),
                            X: e.xy.x,
                            Y: e.xy.y,
                            INFO_FORMAT: 'text/plain',
                            QUERY_LAYERS: 'buildings',
                            WIDTH: map.size.w,
                            HEIGHT: map.size.h});
            OpenLayers.loadURL(url, '', this, setHTML,errorHTML);
            OpenLayers.Event.stop(e);            
      });
function setHTML(response) {
        OpenLayers.Util.getElement('getfeatureurl').innerHTML = response.responseText;
    }

function errorHTML(response) {
        OpenLayers.Util.getElement('getfeatureurl').innerHTML = response.responseText;
    }
и ответ приходит пустой, при этом вставляю адрес, который получается в переменной url, в адресную строку браузера - появляется текст с информацией об объекте. Что здесь может быть не так?

Итак, проблема сменила направление, все работает в IE и Safari и не работает в firefox и google chrome. Это где-то настраивается?

Re: OpenLayers: пустой ответ на запрос GetFeatureInfo

Добавлено: 27 фев 2010, 13:00
Mavka
Попробуйте WMSGetFeatureInfo.
При проблемах с Firefox смотрите в Firebug

Re: OpenLayers: пустой ответ на запрос GetFeatureInfo

Добавлено: 22 сен 2011, 12:33
Tokha
Salex писал(а):все работает в IE и Safari и не работает в firefox и google chrome.
У меня аналогичная проблема, только наоборот. GetFeatureInfo отлично работает в Firefox и Opera и категорически отказывается работать в IE (пробовал версии 6 и 8). Пробовал скрипты из разных примеров. В firefox работает, в IE никак.

Аналогично, если IE скормить сгенерированный URL в адресную строку, то ответ приходит, в OpenLayers ответ от сервера пустой. Никаких кэшей нет, только OL и mapserver, оба последних версий, на сегодняшний день.

Уже не знаю, куда копать. Скорее всего тут какая-то проблема с ajax. Никаких ошибок. Судя по логам, все находится успешно, статусы успешные, но ответ пустой. Кстати, другие ajax разработки, не через OL, работают в IE без проблем)

Есть у кого какие мысли?

Re: OpenLayers: пустой ответ на запрос GetFeatureInfo

Добавлено: 22 сен 2011, 12:39
Mavka
OpenLayers официально не поддерживает IE 6.
В 8-ке включите дебаггер. Проверьте логи Apache на факт наличия запросов.

Re: OpenLayers: пустой ответ на запрос GetFeatureInfo

Добавлено: 22 сен 2011, 13:21
Tokha
Mavka писал(а):OpenLayers официально не поддерживает IE 6.
В 8-ке включите дебаггер. Проверьте логи Apache на факт наличия запросов.
По всем логам, и Apache и mapserver, запросы приходят верные.
По дебаггеру IE-8 видно, что ответ приходит, но пустой (responseText = "").

Хотя, вот сейчас подробнее посмотрел, все-таки присутствует некая ошибка (см. картинку). В Firefox оба этих responseText имеют одинаковые значения.
Ошибка в дебаггере IE8 WMSGetFeatureInfo
Ошибка в дебаггере IE8 WMSGetFeatureInfo
Ошибка IE.GIF (32.11 КБ) 5304 просмотра

Re: OpenLayers: пустой ответ на запрос GetFeatureInfo

Добавлено: 22 сен 2011, 13:39
Tokha
Все, разобрался! :)
Особенность IE и AJAX.

Сделал так и все заработало:

Код: Выделить всё

# wms_encoding cp1251
wms_encoding utf-8 


ajax у IE работает только в юникоде, а у меня данные в cp1251.

Осталось у данных как-то кодировку изменить.