2011-12-18 17 views
1

ajaxリクエストの失敗後にxmlでサーバーから返されたエラーを解析したいと考えています。私は単純にXML応答内の各エラーについてのliタグでXMLからのULタグを構築しようとしていますjQuery 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> 

:のようなXMLが見えます。応答は、このHTMLを出力し、「contactErrors」のidのdiv要素に追加した方法で処理されるべきである:

<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) 
      } 
     } 
    }); 
}); 

ご協力いただきありがとうございます。

+0

XMLの代わりにJSONを使用することをお勧めします。 – SinistraD

+0

私はJSONを検討していましたが、それを解析する方法はほとんど考えていませんでした。D –

答えて

0

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

return this.Content(xmlStringValue, "text/xml") 
0

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

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

あなたはJSONを書きたい場合は自分で数字、ブール値、配列や文字列とすることができる、値を持つメンバーが含まれ、通常のjavascriptオブジェクト、と考えます。

関連する問題