如何检测jQuery$.get失败?

如何检测jQuery$.get失败?,jquery,Jquery,我是jQuery的初学者。我正在尝试使用$.get()编写一个非常简单的代码。报告说: 如果带有jQuery.get()的请求返回错误代码,则除非脚本还调用了global.ajaxError()方法或 从jQuery1.5开始,jqXHR对象的.error()方法 由jQuery.get()返回的值也可用于错误处理 所以,如果一切顺利,我的成功回调函数将被调用。但是,如果请求失败,我希望获得HTTP代码:404、502等,并为用户生成一条有意义的错误消息 然而,由于这是一个异步调用,我可以想象我

我是jQuery的初学者。我正在尝试使用$.get()编写一个非常简单的代码。报告说:

如果带有jQuery.get()的请求返回错误代码,则除非脚本还调用了global.ajaxError()方法或

从jQuery1.5开始,jqXHR对象的.error()方法 由jQuery.get()返回的值也可用于错误处理

所以,如果一切顺利,我的成功回调函数将被调用。但是,如果请求失败,我希望获得HTTP代码:404、502等,并为用户生成一条有意义的错误消息

然而,由于这是一个异步调用,我可以想象我可能有几个未完成的调用。.ajaxError()如何知道它对应于哪个请求?也许最好使用jQuery.get()返回的jqXHR对象的.error()方法

我正在寻找一个非常简单的代码示例。可能成功例程调用警报(“找到页面”),失败例程检查404并发出警报(“找不到页面”)

更新 下面的页面非常有用:

.get()
只是
.ajax()
的同义词,它预先设置了许多选项。用于获取全部选项,包括
错误
回调

$.ajax({
type: "GET",
url: "test.htm",
error: function(xhr, statusText) { alert("Error: "+statusText); },
success: function(msg){ alert( "Success: " + msg ); }
}
);

您是对的,您可以使用jQuery 1.5的新jqXHR将错误处理程序分配给
$.get()
请求。这就是你可以做到的:

var request = $.get('/path/to/resource.ext');

request.success(function(result) {
  console.log(result);
});

request.error(function(jqXHR, textStatus, errorThrown) {
  if (textStatus == 'timeout')
    console.log('The server is not responding');

  if (textStatus == 'error')
    console.log(errorThrown);

  // Etc
});
您还可以将处理程序直接链接到调用上:

$.get('/path/to/resource.ext')
     .success(function(result) { })
     .error(function(jqXHR, textStatus, errorThrown) { });

我更喜欢前者使代码不那么纠结,但两者都是等价的。

从jQuery 3.0开始
。success()
。error()
被贬低。
您可以使用
.done()
.fail()
代替

$.get( url )
    .done(function( data, textStatus, jqXHR ) {
        console.log(data);
    })
    .fail(function( jqXHR, textStatus, errorThrown ) {
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown );
    });

资料来源:

+1这说明我是一个什么样的n00b,而我并不知道。我会试试看,然后再打给你。谢谢。顺便问一下,我如何将CGI参数传递到URL。例如,google.com?serach=“pizza”在传输中失败的Ajax请求将以静默方式失败(只有在解析请求时出错,才会调用error,但请求已被正确接收)+1感谢您的帮助。但是如果我有几个并行活动的请求呢?如何判断哪个错误属于哪个错误?传递到错误处理程序的jqXHR对象将包含有关引发错误的原始请求的信息。根据您的服务器端实现,ErrorSwink还将包含有关出错原因的更多详细信息。如果您将JavaScript对象作为
$.get()
的第二个参数传递,它将对该数据进行URL编码并将其附加到URL。例如,您将使用
$.get('/path/to/resource.ext',{search:'pizza'})
添加参数.jQuery现在使用.done和.fail,而不是.success和.error,这两个参数都已被弃用,但可能会工作一段时间@Jazzepi是对的,但也有其他选择