ajax请求超时判断并处理

error事件返回的第一个参数XMLHttpRequest有一些有用的信息

XMLHttpRequest.readyState: 状态码

0 - (未初始化)还没有调用send()方法

1 - (载入)已调用send()方法,正在发送请求

2 - (载入完成)send()方法执行完成,已经接收到全部响应内容

3 - (交互)正在解析响应内容

4 - (完成)响应内容解析完成,可以在客户端调用了

XMLHttpRequest.status属性:一些错误代码

HTTP

1xx-信息提示

这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。

100-继续。

101-切换协议。

2xx-成功

这类状态代码表明服务器成功地接受了客户端请求。

200-确定。客户端请求已成功。

201-已创建。

202-已接受。

203-非权威性信息。

204-无内容。

205-重置内容。

206-部分内容。

3xx-重定向

客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。

301-对象已永久移走,即永久重定向。

302-对象已临时移动。

304-未修改。

307-临时重定向。

4xx-客户端错误

发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。400-错误的请求。

401-访问被拒绝。IIS定义了许多不同的401错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS日志中显示:

401.1-登录失败。

401.2-服务器配置导致登录失败。

401.3-由于ACL对资源的限制而未获得授权。

401.4-筛选器授权失败。

401.5-ISAPI/CGI应用程序授权失败。

401.7–访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS6.0所专用。

403-禁止访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因:

403.1-执行访问被禁止。

403.2-读访问被禁止。

403.3-写访问被禁止。

403.4-要求SSL。

403.5-要求SSL128。

403.6-IP地址被拒绝。

403.7-要求客户端证书。

403.8-站点访问被拒绝。

403.9-用户数过多。

403.10-配置无效。

403.11-密码更改。

403.12-拒绝访问映射表。

403.13-客户端证书被吊销。

403.14-拒绝目录列表。

403.15-超出客户端访问许可。

403.16-客户端证书不受信任或无效。

403.17-客户端证书已过期或尚未生效。

403.18-在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS6.0所专用。

403.19-不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS6.0所专用。

403.20-Passport登录失败。这个错误代码为IIS6.0所专用。

404-未找到。

404.0-(无)–没有找到文件或目录。

404.1-无法在所请求的端口上访问Web站点。

404.2-Web服务扩展锁定策略阻止本请求。

404.3-MIME映射策略阻止本请求。

405-用来访问本页面的HTTP谓词不被允许(方法不被允许)

406-客户端浏览器不接受所请求页面的MIME类型。

407-要求进行代理身份验证。

412-前提条件失败。

413–请求实体太大。

414-请求URI太长。

415–不支持的媒体类型。

416–所请求的范围无法满足。

417–执行失败。

423–锁定的错误。

5xx-服务器错误

服务器由于遇到错误而不能完成该请求。

500-内部服务器错误。

500.12-应用程序正忙于在Web服务器上重新启动。

500.13-Web服务器太忙。

500.15-不允许直接请求Global.asa。

500.16–UNC授权凭据不正确。这个错误代码为IIS6.0所专用。

500.18–URL授权存储不能打开。这个错误代码为IIS6.0所专用。

500.100-内部ASP错误。

501-页眉值指定了未实现的配置。

502-Web服务器用作网关或代理服务器时收到了无效响应。

502.1-CGI应用程序超时。

502.2-CGI应用程序出错。application.

503-服务不可用。这个错误代码为IIS6.0所专用。

504-网关超时。

505-HTTP版本不受支持。

FTP

1xx-肯定的初步答复

这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。

110重新启动标记答复。

120服务已就绪,在nnn分钟后开始。

125数据连接已打开,正在开始传输。

150文件状态正常,准备打开数据连接。

2xx-肯定的完成答复

一项操作已经成功完成。客户端可以执行新命令。200命令确定。

202未执行命令,站点上的命令过多。

211系统状态,或系统帮助答复。

212目录状态。

213文件状态。

214帮助消息。

215NAME系统类型,其中,NAME是AssignedNumbers文档中所列的正式系统名称。

220服务就绪,可以执行新用户的请求。

221服务关闭控制连接。如果适当,请注销。

225数据连接打开,没有进行中的传输。

226关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。

227进入被动模式(h1,h2,h3,h4,p1,p2)。

230用户已登录,继续进行。

250请求的文件操作正确,已完成。

257已创建“PATHNAME”。

3xx-肯定的中间答复

该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。331用户名正确,需要密码。

332需要登录帐户。

350请求的文件操作正在等待进一步的信息。

4xx-瞬态否定的完成答复

该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。421服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。

425无法打开数据连接。

426Connectionclosed;transferaborted.

450未执行请求的文件操作。文件不可用(例如,文件繁忙)。

451请求的操作异常终止:正在处理本地错误。

452未执行请求的操作。系统存储空间不够。

5xx-永久性否定的完成答复
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)


完整版面试题资料免费分享,只需你点赞支持,动动手指点击此处就可免费领取了

前端实习面试的套路


回顾项目

往往在面试时,面试官根据你简历中的项目由点及面地展开问答,所以请对你做过的最好的项目进行回顾和反思。回顾你做过的工作和项目中最复杂的部分,反思你是如何完成这个最复杂的部分的。

面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

分,反思你是如何完成这个最复杂的部分的。

面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax请求session超时处理流程 java服务器端处理: SessionValidateFilter中修改: if (ServerInfo.isAjax(request)) { request.setAttribute("statusCode", 301); request.setAttribute("message", "Session timeout!"); response.sendRedirect(response.encodeRedirectURL("/ajaxDone.jsp"); else { response.sendRedirect(response.encodeRedirectURL(this.loginUrl + java.net.URLEncoder.encode(backToUrl, "UTF-8"))); } ajaxDone.jsp页面 <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> { statusCode:${statusCode}, message:"${message}", objectId:"${objectId}" } js客户端处理ajax load页面碎片处理: 自己写一个loadUrl()方法,不能使用jquery自带的load(). 当客户端调用loadUrl()超时,弹出一个登录框,并加一个背景层下面的整个浏览器.这时浏览器窗口内容不能变,只是上面加了一个登录框和一个背景层 当用户输入username and password登录成功后,去掉登录框和背景层.这时用户可以继续操作. 登录失败alert出错信息,浏览器窗口内容还是不变. var DWZ = { loginUrl:"/render.do?method=login", ajaxDoneEval:function (json) { //session timeout try{ return eval('(' + json + ')'); } catch (e){ return {}; } } }; (function($){ $.extend({ loadUrl: function(url,data,callback){ var aData = data || {}; aData["timestamp"] = new Date().getTime(); var $this = $(this); $.get(url, aData, function(data){ var json = DWZ.ajaxDoneEval(data); if (json.statusCode==301){ alertMsg.error(json.message, {okCall:function(){ window.location = "/render.do?method=login"; //popLoginWin(); }}); } else { $this.html(data).initUI(); if (jQuery.isFunction(callback)) callback(); } }); } }); })(jQuery); ajax post 表单数据处理: 当客户端ajax提交表单超时, 弹出一个登录框,并加一个背景层下面的整个浏览器. 当用户输入username and password登录成功后,去掉登录框和背景层.这时用户可以继续操作. 登录失败alert出错信息. $.post(form.action, params, callback(json){ if (json.statusCode == 301) { //301 状态表示 session timeout popLoginWin(); }else if (json.statusCode == 300) { //300 状态表示 操作失败 alertMsg.error(json.message); } else if(json.statusCode == 200) { //300 状态表示 操作成功 alertMsg.correct(json.message); } }, "json");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值