0

我有一个获取用户名/密码的登录 JSON 服务。当我通过JQuery 1.10.1AJAX 调用它并输入正确的凭据时,它可以工作。但是当我输入不正确的凭据时,错误函数处理程序会按预期触发,但是!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);
    }
});
4

2 回答 2

1

您在控制台中遇到的错误被视为 网络错误Chrome,而不是 Javascript 运行时错误。Firefox

无论您是否在某处处理了错误,他们都会打印此消息,因为该消息的目的纯粹是提供信息。

于 2013-07-04T22:20:52.753 回答
0

这就是它的工作原理,浏览器在网络堆栈中遇到错误并正在报告它。如果您只是在进行身份验证,那么您真的应该在您的服务器上触发 401 - Not authorized 响应,500 表示服务器完全错误。

此外,就像这样来回传递凭据被视为反模式,不建议这样做。

于 2013-07-04T22:21:45.617 回答