[英]jQuery Handling JSON responses
服務器響應中包含以下內容:
{"invalid_emails":["adsasdasd"],"result":"success","valid_emails":["jobs@apple.com"]}
但是這個錯誤?
$.ajax({
type: 'POST',
url: '/users/invitation',
data: $('#user_invitation_new').serialize(),
success: function(e) {
jsonObject = jQuery.parseJSON(e);
jsonObject.valid_emails
jsonObject.invalid_emails
我收到以下錯誤:未捕獲的TypeError:無法讀取null的屬性'valid_emails'
正如Jason和Jonathon所提到的,您不應該手動反序列化JSON。 根據您使用的jQuery版本,jQuery會根據響應的content-type標頭自動反序列化JSON。 因此,您可能正在嘗試$ .parseJSON()某些已經是對象的東西,而不是JSON字符串。
為確保jQuery為您執行此自動反序列化,請在$ .ajax()調用中添加dataType
參數:
$.ajax({
type: 'POST',
dataType: 'json',
url: '/users/invitation',
data: $('#user_invitation_new').serialize(),
success: function(response) {
console.log(response.valid_emails);
console.log(response.invalid_emails);
}
});
您可能不必解析該JSON,因為它已經是JSON對象。 嘗試做
var emails = e.valid_emails;
如果仍然dataType: 'json'
,請在.ajax()
聲明中包含dataType: 'json'
。
只需嘗試包括
dataType: 'json',
如果您的服務器使用JSON響應,則您必須運行jQuery.parseJSON(e);
。 e
參數可能已經是about,因此請為您的成功處理程序嘗試以下操作:
success: function(e)
var valEmails = e.valid_emails,
invalEmails = e.invalid_emails;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.