избежать ошибки responseXML из-за отсутствия закрывающего тега - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь проанализировать ответ AJAX-запроса как XML.

Поскольку он может иметь разные типы MIME, я сначала запрашиваю его как XML через overrideMimeType().

Это работает в большинстве случаев, но когда я пытаюсь переопределить этот URL (используйте CTRL+U, чтобы увидеть его источник), responseXML() очевидно ошибка из-за отсутствующего тега </meta>.

TypeError: xhr is null
Errore interpretazione XML: tag corrispettivo mancante. Previsto: </meta>.

У меня нет контроля над запрошенными данными, поэтому я не могу добавить тег самостоятельно.

Причина, по которой я выполняю это преобразование, заключается в том, чтобы проанализировать ответ в случае возникновения исключения и перехватить его сообщение (ресурс фактически представляет собой службу веб-карты или WMS).

Тера - это способ преодолеть эту проблему?

Вот часть кода, который я использую:

var xhttp = new XMLHttpRequest();
// overrideMimeType() can be used to force the response to be parsed as XML
xhttp.overrideMimeType('text/xml');
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        // if ServiceExceptionReport occurs, place it in alert type "error"
        var xhr = this.responseXML;
        if (xhr.documentElement.nodeName === 'ServiceExceptionReport') {
            fancyAlert(this.responseText, 'error');
        } else {
            fancyAlert(this.responseText, 'info', 'Layer Info');
        }
    }
};
xhttp.open("GET", text, true);
xhttp.send();
...