jQueryがAjaxリクエストの一部として単純なXMLを解析する

私は失敗したajaxリクエストの後にxmlで自分のサーバーから返されたエラーを解析しようとしています。 XMLは以下のようになります:

<?xml version="1.0" encoding="UTF-8"?>

  Full name can't be blank
  Email can't be blank

私はXMLレスポンスの各エラーに対してliタグを付けてxmlからulタグを作成しようとしています。レスポンスは、このHTMLを出力し、ID「contactErrors」を持つdivに追加する方法で処理する必要があります。

  • Full name can't be blank
  • Email can't be blank

現在、私は次の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)
            }
        }
    });
});

どんな助けでも大歓迎です!

1
この種のものにはXMLの代わりにJSONを使うことをお勧めします
追加された 著者 SinistraD,
私はJSONを検討していましたが、それをどのように構文解析するかについては少しも考えていませんでした。
追加された 著者 Robert Klubenspies,

2 答え

なぜJSonではないのですか? XMLの場合、アクションでXMLを返すことができます

  return this.Content(xmlStringValue, "text/xml")
0
追加された

JSONはサーバークライアントの通信に適しています。サーバー側では、PHPでオブジェクトをJSONにエンコードすることができます。これは json_encode です。 ASP.NETで JavaScriptSerializer とそうです。 json.org (スクロールダウン)に関する完全なリストがあります。解析するのは非常に簡単です。有効なJavaScriptコードであるため、評価する必要があります。

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

JSONを書く場合は、数値、ブール値、配列または文字列の値を持つメンバーを含む通常のjavascriptオブジェクトと考えてください。

0
追加された