在这种情况下,状态将始终成功:
$.post($('#form_url').val(), { email: email_val },function(data, status){
console.log(status, data);
if(status === "success"){
step_1.fadeOut(function(){
step_2.fadeIn();
});
}
});
它返回的console.log数据如下:
{"status":false,"error":"You already participate in the competition"}
如何访问false的状态?
我需要做这样的事情:
if (status === 'error'){//do sth}
答案 0 :(得分:1)
将dataType
作为json
传递,因为您的回复是json字符串,然后data
将成为对象。然后,您可以使用Member Operator
status
和error
媒体资源
$.post($('#form_url').val(), {
email: email_val
}, function (data, status) {
if (data.status) {
step_1.fadeOut(function () {
step_2.fadeIn();
});
} else {
console.log(data.error)
}
}, 'json');
答案 1 :(得分:0)
使用现代的ajax调用语法:
$.ajax({
url: $('#form_url').val()
, data: { email: email_val }
, method: "POST"
}).always(function(data_or_jqXHR, textStatus, jqXHR_or_errorThrown) {
console.log(textStatus, data_or_jqXHR);
}).done(function(data, textStatus, jqXHR) {
step_1.fadeOut(function(){
step_2.fadeIn();
});
}).fail(function(jqXHR, textStatus, errorThrown) {
// do sth on error
});
有关该方法的详细说明,请参阅jquery api docs on ajax
。