2011-12-18 148 views
1

我正在尋找解析apache請求失敗後我的服務器在xml中返回的錯誤。該XML的樣子:jQuery解析簡單的XML作爲Ajax請求的一部分

<?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的UL標籤與在XML響應中的每個錯誤在LI標籤。響應應在輸出該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

我推薦使用JSON而不是XML來處理這種東西 – SinistraD 2011-12-18 20:49:54

+0

我正在考慮使用JSON,但是並沒有絲毫的想法來解析它:D – 2011-12-18 20:53:32

回答

0

JSon爲什麼不?對於XML,您可以在您的動作中返回XML

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

JSON更適合服務器客戶端通信。在服務器端,您可以使用json_encode在PHP中將對象編碼爲JSON,在ASP.NET中使用JavaScriptSerializer等。您可以在json.org(向下滾動)上找到完整列表。解析它非常簡單,因爲它是一個有效的JavaScript代碼,你只需要評估它。

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

如果你想寫自己的JSON認爲它作爲一個正常的JavaScript對象,其中包含與價值觀的成員,可以是數字,布爾值,數組或字符串。