我有一个ajax函数,它发送电子邮件到某个地方,并从一个包含类型为success或error的json对象的服务器接收响应。
有趣的是,如果我使用
$("#submit_btn").click(function(event) {
event.preventDefault();
var post_data = {
'email': $("#email").val()
};
$.post( "sendEmail.php", post_data ).done(function(response){
if(response.type == 'success'){
$("#sentmail").fadeIn("slow")
setTimeout(function(){
$("#mail").val("Enter your email here");
$("#sentmail").fadeOut("slow")
},3000);
}
else{
$("#sentmailfail").fadeIn("slow")
setTimeout(function(){
$("#mail").val("Enter your email here");
$("#sentmailfail").fadeOut("slow")
},3000);
}
},"json")
});
有趣的是,如果我使用
console.log(response)
,例如我得到了{"type":"success","desc":"something"}
,然后紧接着console.log((response.type == "error")) // TRUE
但是,如果我将响应的控制台日志记录分配给一个变量,例如a = {"type":"success","desc":"something"}
,那么a.type == "error"
则为false。
有人能解释一下吗?
console.log(response)
? - amphetamachine{"type":"success"
...type == "error"
嗯...很明显你漏掉了一些东西,因为你的例子完全不对。需要更详细的例子才能确定问题所在。 - user578895