jQuery Парсинг простого XML как часть Ajax-запроса - PullRequest
1 голос
/ 19 декабря 2011

Я пытаюсь разобрать ошибки, которые мой сервер возвращает в xml после неудачного запроса AJAX.XML выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<errors>
  <error>Full name can't be blank</error>
  <error>Email can't be blank</error>
</errors>

Я просто пытаюсь создать тег ul из xml с тегом li для каждой ошибки в ответе xml.Ответ должен быть обработан так, чтобы выводить этот HTML и добавлять его в div с идентификатором «contactErrors»:

<ul>
   <li>Full name can't be blank</li>
   <li>Email can't be blank</li>
</ul>

В настоящее время у меня есть следующий jQuery, но я не могу понять, как разобратьответ HTTP 422 (ошибки формы / необработанный объект) правильно.

$("#new_message").submit(function(e){
    e.preventDefault();

    $.ajax({
        type: "POST",
        url: "messages.xml",
        data: $(this).serialize(),
        cache: false,
        statusCode: {
            201: function(data) {
                $("#new_message").slideUp();
                $("#contactSuccess").fadeIn(2500);
            },
            422: function(data) {
                // XML response should be processed here and can be accessed by calling $(data)
            }
        }
    });
});

Любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

JSON больше подходит для взаимодействия с клиентом на сервере. На стороне сервера вы можете закодировать объект в JSON в PHP с помощью json_encode , в ASP.NET с помощью JavaScriptSerializer и так далее. Вы можете найти полный список на json.org (прокрутите вниз). Синтаксический анализ очень прост, потому что это допустимый код JavaScript, вам нужно только проверить его.

var myObject = eval('(' + myJSONtext + ')');

Если вы хотите написать JSON, подумайте о нем как о обычном объекте javascript, который содержит элементы со значениями, которые могут быть числами, логическими значениями, массивами или строками.

0 голосов
/ 19 декабря 2011

Почему не JSon? Для XML вы можете вернуть XML в вашем действии с помощью

  return this.Content(xmlStringValue, "text/xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...