2017-03-01 50 views
0

我有一個AJAX窗體來更改密碼,我想在HTML DIV中顯示所有驗證錯誤。如何在DIV中顯示來自JSON響應的錯誤?

下面是我的代碼,它提交表單工作正常,但我不能將錯誤傳遞給DIV,我不斷得到:[object Object]

var url = "/posts/editProfile"; // the script where you handle the form input. 

$.ajax({ 
     type: "POST", 
     url: url, 
     data: $("#profileForm").serialize(), // serializes the form's elements. 
     success: function(data) 
     { 

      alert(data); // show response from the php script. 

     }, 

     error: function(data) 
     { 

     console.log(data); 

     $("#response").text(data); 

     } 

    }); 

e.preventDefault(); 

}); 

<div id="response"> <!-- output here --> </div>

這是我在控制檯中得到了響應的屏幕截圖。 screenshot

+0

嗯,這是你的答案。數據是一個javascript對象。我的意思是,如果你想轉儲所有的東西,你可以做JSON.stringify(數據)。 –

+0

你想要顯示哪個responseJSON中的消息? –

+0

所有這些,只是''''「...」]''' – Antonio

回答

1

這是因爲你正試圖通過傳遞錯誤的對象,這就是爲什麼你正在設置一個div元素的內部文本的翻譯:我建議你檢查調試模式下你的錯誤的對象,或通過簡單地打印出來,你居然做到了,而不是做

$("#response").text(data); 

這樣做

$("#response").text(data.responseJSON.responseText); 

但是,這只是轉儲DIV內的一些錯誤的文字,我想你想展示一些meaningf ul驗證您的用戶,實現這一點只需使用您的錯誤對象,以最適合您的方式顯示正確的數據。

+0

返回的對象中沒有'errorMessage'屬性。 –

+2

好吧,這就是爲什麼我說,檢查從您使用的API返回的錯誤對象是一個好主意。檢查我做的編輯,我錯過了responseJSON屬性... – Lys

+0

'''data.responseJSON.responseText''沒有奏效。 '''data.responseText'''將結果返回給div,但它沒有正確顯示,就像這樣:'''「email」:[「O campo email \ u00e9 obrigat \ u00f3rio。」]''' ,如何才能顯示雙引號之間的消息? – Antonio