2012-03-08 6 views
0

Я пытаюсь разобрать XML в ответе Ajax. Когда сервер возвращает 200, все работает нормально. Но, похоже, разбор XML в JQuery отключен при ошибке.JQuery XML Parsing при ошибке

statusCode:{ 
200:function(xml){alert($(xml).find("error").text());}, 
404:function(xml){alert($(xml).find("error").text());} 
} 

Если я пришлю 200, я получу правильное предупреждение. Но если я изменю код ответа на любую ошибку, которая мне нравится, я просто получаю пустое поле оповещения. Я просто глупый для отправки текста/xml при ошибке, это ошибка в jquery или где я ошибаюсь?

Надеюсь, кто-то может помочь.

Благодаря

ответ

1

Согласно jQuery documentation,

Если запрос успешен, функция коды состояний принимают те же параметров, как обратный вызов, который является «успех (данные, textStatus, jqXHR) «;

, если это приводит к ошибке, они принимают те же параметры, обратный вызов ошибки, которая является «ошибкой (jqXHR, textStatus, errorThrown)»

Это означает, что в вашем 404 обратном вызове функция»(XML) {Alert ($ (XML) .find ("ошибка") текст().);» «xml» на самом деле является объектом jqXHR и, по понятным причинам, $ (xml) .find («error»). text() ничего.

+0

Благодаря вашей подсказке я получил его решить: мне пришлось использовать $ (xml.responseXML) .find («ошибку») Таким образом, ответ был преобразован в объект JQuery, на котором я мог бы тогда выполнить поиск() Thanks – JavaJens