如何检测jQuery$.get失败?
我是jQuery的初学者。我正在尝试使用$.get()编写一个非常简单的代码。报告说: 如果带有jQuery.get()的请求返回错误代码,则除非脚本还调用了global.ajaxError()方法或 从jQuery1.5开始,jqXHR对象的.error()方法 由jQuery.get()返回的值也可用于错误处理 所以,如果一切顺利,我的成功回调函数将被调用。但是,如果请求失败,我希望获得HTTP代码:404、502等,并为用户生成一条有意义的错误消息 然而,由于这是一个异步调用,我可以想象我可能有几个未完成的调用。.ajaxError()如何知道它对应于哪个请求?也许最好使用jQuery.get()返回的jqXHR对象的.error()方法 我正在寻找一个非常简单的代码示例。可能成功例程调用警报(“找到页面”),失败例程检查404并发出警报(“找不到页面”) 更新 下面的页面非常有用:如何检测jQuery$.get失败?,jquery,Jquery,我是jQuery的初学者。我正在尝试使用$.get()编写一个非常简单的代码。报告说: 如果带有jQuery.get()的请求返回错误代码,则除非脚本还调用了global.ajaxError()方法或 从jQuery1.5开始,jqXHR对象的.error()方法 由jQuery.get()返回的值也可用于错误处理 所以,如果一切顺利,我的成功回调函数将被调用。但是,如果请求失败,我希望获得HTTP代码:404、502等,并为用户生成一条有意义的错误消息 然而,由于这是一个异步调用,我可以想象我
.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是对的,但也有其他选择