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 🙁