我有一个登录JSON服务,获取用户名/密码。
当我通过JQuery 1.10.1
AJAX调用它并输入正确的凭据时,它可以正常工作。但是当我输入错误的凭据时,错误函数处理程序IS FIRED AS EXPECTED,但是! jquery仍然引发了我可以在Chrome / Firefox控制台上看到的异常:
POST http://localhost/services/admin/login 500 (Internal Server Error)
处理了(故意的)ajax错误!为什么我将其视为javascript错误?
谢谢。
$.ajax({
url: "../services/admin/login",
type: "POST",
data: JSON.stringify({ 'username': username, 'password': password }),
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function (response, textStatus, jqXHR) {
window.location = "index.html";
},
error: function (jqXHR, textStatus, errorThrown) {
$(".errorDiv").html(jqXHR.responseJSON);
}
});
答案 0 :(得分:1)
您在控制台中遇到的错误被Chrome
和Firefox
视为网络错误,而不是Javascript运行时错误。
无论您是否在某处处理错误,他们都会打印此消息,因为消息的目的仅仅是提供信息。
答案 1 :(得分:0)
这就是它的工作原理,浏览器在网络堆栈中遇到错误并报告它。如果它只是您正在进行的身份验证,那么您应该在您的服务器上启动401 - 未授权的响应,500意味着完整的服务器错误。
另外,就像这样来回传递凭证这样被认为是反模式而且不建议。