我在创建函数时遇到问题-在不重新加载的情况下加载页面,我遇到的问题是“我想在链接为404或没有网络连接丢失时显示警报”。我知道此代码jqXHR.status == 0
会得到网络连接错误,或为404出现jqXHR.status !== 0
,但我不知道我不知道如何用现有代码实现此代码。
请帮助我编写此功能。
$(function(){
$("a[rel='tab']").click(function(e){
pageurl = $(this).attr('href');
$.ajax({url:pageurl+'?rel=tab',success: function(data){
$('#containt').html(data);
}});
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl);
}
return false;
});
});
$(window).bind('popstate', function() {
$.ajax({url:location.pathname+'?rel=tab',success: function(data){
$('#containt').html(data);
}});
});
<a rel="tab" href="./404.php">Show me 404 ALert Pls</a>
为“错误”事件或“ statusCode”添加回调。
$.ajax({
url:pageurl+'?rel=tab',
success: function(data){
$('#containt').html(data);
},
statusCode: {
404: function() {
alert( "page not found" );
}
}
});
从docs:
错误
Type:Function(jqXHR jqXHR,字符串textStatus,字符串errorThrown)
如果请求失败,将调用的函数。的函数接收三个参数:jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象,一个描述错误类型的字符串发生,以及一个可选的异常对象(如果发生)。可能第二个参数的值(除null外)为“超时”,“错误”,“中止”和“ parsererror”。 当HTTP错误发生时,errorThrown接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误。”(在HTTP / 2中,它可能为空字符串)从jQuery 1.5开始,错误设置可以接受数组功能。每个函数将依次调用。注意:此处理程序是跨域脚本和跨域JSONP请求未调用。这是一个Ajax事件。
statusCode(默认:{})
Type:PlainObject一个数字HTTP代码和功能的对象,当响应具有相应的代码时调用。如果请求是成功后,状态码功能采用与成功回调;如果导致错误(包括3xx重定向),它们采用与错误回调相同的参数。
(添加的版本:1.5)
您可以使用错误功能以这种方式执行此操作
$.ajax({
url: pageurl + '?rel=tab',
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
// here you can use the xhr code to return to main page or whatever
alert(thrownError);
},
success: function (data) {
$('#containt').html(data);
}
});