手机版

jQuery AJAX中readyState和State的区别和联系

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

AJAX作为web前端的杀手之一,颠覆了很多人对web前端的认识。从我个人的角度来看,如果html/css/JavaScript神器最终是在1996年组装的,这使得web前端具备了召唤龙的能力,那么ajax就是这三个神器召唤的第一条龙。从此,前端代码有了完全分离的可能。当遇到后台传递引用等问题时,前端的程可以自信满满。

在使用AJAX的时候,我这里用的是原生js,而不是jQuery等框架,因为Queen告诉我们,原生是最强大的。

话不多说,先看代码

这里写图片描述

这段代码构造了一个XHR对象的实例请求,并使用它来建立异步请求。在onreadystatechange事件中,我们发现有两个属性,readyState和State,其中readyState获取AJAX状态值,其值和含义如下:

0:请求未初始化,并且未调用open方法

1:服务器连接已建立,并已调用open

2:请求已被接受,即已收到标题信息

3:处理请求时,会收到响应主题

4:请求完成,即响应完成

状态获取HTTP状态码,由三位数字组成,第一位数字及其含义如下:

1xx:表示服务器已经收到来自web浏览器的请求并正在处理它。

2xx:成功意味着用户的请求已被正确接受、理解和处理

3xx:重定向,表示请求不成功,客户需要采取进一步措施

4xx:客户端错误,表示客户端提交的请求是错误的

5xx:服务器错误,表示服务器无法完成处理请求

那么AJAX状态值和HTTP状态代码有什么区别和关系呢?这是一个值得思考的问题。虽然它对编程本身没有用,但我们应该研究它,因为我们知道为什么。

众所周知,AJAX的核心是XHR对象。在AJAX执行期间,readyState的值从0开始变化。当AJAX运行到send方法调用时,会发送一个HTTP请求,并执行HTTP请求安装步骤。此时,状态的值开始改变,AJAX运行机制等待HTTP请求返回结果。最后,在HTTP请求返回结果后,无论HTTP请求成功还是失败,无论是否请求了正确的信息,AJAX运行机制都会继续执行,直到操作完成或者出现错误。这是AJAX状态值和HTTP状态代码之间的关系。不知道能不能接受这种理解。如有不清楚或不妥之处,请在评论区指出。阿里加多。

版权声明:jQuery AJAX中readyState和State的区别和联系是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。