Javascript Jquery$.ajax在错误处理程序中返回未定义的jqXHR
我有以下Ajax调用:Javascript Jquery$.ajax在错误处理程序中返回未定义的jqXHR,javascript,jquery,ruby-on-rails,ajax,xmlhttprequest,Javascript,Jquery,Ruby On Rails,Ajax,Xmlhttprequest,我有以下Ajax调用: $.ajax({ type: 'POST', contentType: 'application/json', url: reply_url, data: reply_data, success: function(data, textStatus, xhr) { location.reload(); }, error
$.ajax({
type: 'POST',
contentType: 'application/json',
url: reply_url,
data: reply_data,
success: function(data, textStatus, xhr) {
location.reload();
},
error: function(jqXHR, exception) {
alert(jqXHR.status);
}
});
当服务器返回500时,我得到以下错误:
Uncaught TypeError: Cannot read property 'status' of undefined
jqXHR可能未定义的情况有哪些
PS:我正在使用jQueryV1.8.3
编辑:
我注意到这只发生在对RubyonRails应用程序的Ajax调用中。对另一个域的Ajax调用将jqXHR返回为exptected。正如您在这里看到的: 您的请求函数确实有效。。。。(我也用jQuery1.8.3测试了它,效果很好)。如果您想尝试该链接,请记住选择“添加库”>“jQuery”
如果您看到该错误,那么它与代码的其他部分有关,因为您提供的代码段工作正常。您是否尝试过:
error:function(xhr,statusText,err){xhr.status}
@EhsanSajjad您实际上编写了相同的代码,只是没有alert()
@EhsanSajjad我刚刚尝试过,我也得到了同样的结果。你在使用什么浏览器?我在Chrome36和Firefox31上进行了测试。JS应用程序非常广泛。是否有可能其他地方的一些代码正在拦截返回的jqXHR对象,并在错误处理程序之前将其设置为未定义?我真的不知道,如果没有这些代码,我就说不出哪里出了问题。