Ошибка анализа XML: не корректно сформирована в FireFox, но хорошая в Chrome

Я использую jQuery Ajax, как показано ниже:

$.ajax({
url: 'servlet/*****Servlet',
      dataType: "text",
      success: function(data) {
        var subareaCoordsPGs = preprocessCoords(data);
      }
    });

он работает хорошо, даже я не установил dataType в Chrome, однако он не прошел в FF с ошибкой синтаксического анализа XML.

Источник ответа Headersview
Сервер Apache-Coyote/1.1
Transfer-Encoding chunked
Дата Вт, 04 Окт 2011 00:08:08 GMT

Запросить источник Headersview
Host localhost: 8080
User-Agent Mozilla/5.0 (Windows NT 5.2; WOW64; rv: 7.0.1) Gecko/20100101 Firefox/7.0.1
Принять текст /plain,/; д = 0,01
Accept-Language en-us, en; q = 0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1, utf-8; q = 0,7, q = 0,7
Соединение keep-alive
X-Requested-с XMLHttpRequest
Referer http://localhost:8080/ */
Cache-Control max-age = 0

Ошибка анализа XML: неверно сформирована. moz-nullprincipal: {2f6a8381-b987-448b-88c2-e89c4e13440b} Номер строки 1, столбец 4:

[email protected] -33.9353900931769,151.247877472978 -33.9360784582012,151.24...
------ ^

после поиска, я знаю, что полезно установить правильный тип данных, я хочу, чтобы он анализировался как обычный текст, но почему Intelligent Guess не работает в FF, даже я задал его тип "текст" явно?

Ответ 1

Сервер не возвращает тип содержимого, поэтому Firefox предполагает, что, поскольку это _XML_HttpRequest, ваш ответ может быть XML и пытается его проанализировать. Когда это выходит из строя, оно перестает пытаться и сообщает, что это вовсе не XML.

Chrome, вероятно, делает то же самое, но ничего не сообщает.

Я предлагаю фактически отправить заголовок Content-Type, указывающий, что у вас есть.

Ответ 2

Просто добавьте этот код. Проблема в том, что сервер не указал тип MIME, и Firefox принимает его за XML. Этот код будет указывать тип Mime, который будет иметь ответ xhr.

beforeSend: function(xhr){  xhr.overrideMimeType( "text/plain; charset=x-user-defined" );},