Parse single Javascript object in Jquery by $.ajax method
Chưa thử test với Jquery phiên bản mới nhất, mới chạy trên bản 1.2.1 (dự án hiện tại đang dùng :(). Khi sử dụng $.ajax như bên dưới thì phát sinh lỗi:
$.ajax({
type: "POST",
url: document.location.href,
data: "card_type=" + cardType + "&card_number=" + cardNumber,
dataType: 'JSON',
cache: false,
success: function(responses){
if(!responses.has_error)
{
alert("Please enter valid Card Number.");
return false;
}
}
});
thì bị lỗi. Mặc dù response là {'has_error': false;} nhưng lại không nhảy vào khối lệnh IF. Cách khắc phục rất đơn giản:
...
success: function(responses){
var obj = eval('('+responses+')');
if(!obj .has_error)
{
alert("Please enter valid Card Number.");
return false;
}
}
Lưu ý: Chỉ xảy ra lỗi này nếu response là single object, nếu nó là mảng các object thì cứ $.each rồi get theo key, val thì lại ko sao :(