这一切都在标题中。我正在尝试在执行破坏性操作之前检查用户的密码:
$.ajax({
type: 'POST',
url: '/path/to/post.json',
data: { password: '**********' },
success: function() { console.log("Success!"); },
error: function() { console.log("Error!"); }
});
在控制台中:
202 Accepted 123ms
Error!
我认为403 Forbidden用于错误的密码和202接受正确的密码将是适当的响应代码,但我不太了解HTTP说实话。
jQuery版本1.8.3
答案 0 :(得分:11)
由于202的状态,但由于将响应解析为JSON时出错,因此未触发错误回调。对于jQuery,2xx
和304
是成功的。
如果响应正文为Invalid Password
,则json无效,并在尝试解析时触发jQuery错误。一个合适的JSON字符串有引号,如"Invalid Password"
。您应该使用JSON序列化程序对JSON编码您的响应,而不是手动构建json,您可以看到它容易出错。
答案 1 :(得分:0)
没关系,让它与
一起工作statusCode: {
202: function() { console.log("Success!"); },
403: function() { console.log("Error!'); }
}
而不是success
和error
回调。尽管如此,仍然有点莫名其妙的触发错误。