0
function girisAjaxKontrol() {
var kullanici = { 'kullaniciAdi': $('#username').val(), 'sifre': $('#password').val() };

$.ajax({
    url: '/Giris/GirisGecerliMi',
    type: 'POST',
    data: kullanici,
    success: girisAjaxReturn,
    error: function (error) {
        alert(error.toString());            
    }
});

}

调试 asp .Net MVC4 项目时一切正常。但是,在发布之后,上面的代码块会返回一条警告消息作为“[object Object]”。为什么错误消息不是字符串,为什么它在发布后不起作用?

4

2 回答 2

1

error返回的延迟对象的事件处理程序$.ajax()采用三个参数:

error : function (jqXHR, textStatus, errorThrown) { }

由于您只function (error) { }为您的错误处理程序声明,您实际上是在提醒 AJAX 调用中使用的原始 XHR 对象。

如果您想检查整个对象,可以尝试console.log(error)使用您的函数,或尝试使用 将其转换为 JSON 字符串JSON.stringify(error),然后发出警报。

或者,您还可以检查传递给错误处理程序的第二个或第三个参数。就我个人而言,为了简洁起见,我喜欢签署我的错误函数function (x,s,e) {}

于 2012-06-20T09:43:45.180 回答
1

jQuery.ajax() 的 .error() 事件接受三个参数:

jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象,一个描述发生的错误类型的字符串和一个可选的异常对象(如果发生)。- 更多关于 jQuery.ajax()的信息

您的 .error() 事件正在接受一个由 jQuery 自动读取为 jQXHR 对象的参数。要在警报中看到它,请尝试执行以下操作:

alert(JSON.stringify(error));

或者,您可能希望返回错误描述:

error: function(error, textStatus) {
     alert(textStatus);
}

仅当发生 HTTP 错误时才返回异常对象。

于 2012-06-20T09:52:27.660 回答