Ошибка анализа 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" );},