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]”返回。为什么错误消息不是字符串,为什么它在发布后不起作用?
答案 0 :(得分:1)
error
返回的延迟对象的$.ajax()
事件处理程序有三个参数:
error : function (jqXHR, textStatus, errorThrown) { }
由于您仅为错误处理程序声明function (error) { }
,因此实际上是在警告AJAX调用中使用的原始XHR对象。
如果要检查整个对象,可以在函数上尝试console.log(error)
,或者尝试使用JSON.stringify(error)
将其转换为JSON字符串,然后发出警告。
或者,您也可以检查传递给错误处理程序的第二个或第三个参数。就个人而言,我个人喜欢签署我的错误函数,例如function (x,s,e) {}
。
答案 1 :(得分:1)
jQuery.ajax()的.error()事件接受三个参数:
jqXHR(在jQuery 1.4.x,XMLHttpRequest)对象中, 描述发生的错误类型的字符串 一个可选的异常对象,如果发生了一个。 - 有关jQuery.ajax()here的更多信息。
你的.error()事件接受一个由jQuery自动读取为jQXHR对象的参数。要在警报内查看,请尝试执行以下操作:
alert(JSON.stringify(error));
或者,您可能想要返回错误的描述:
error: function(error, textStatus) {
alert(textStatus);
}
只有在发生HTTP错误时才会返回异常对象。