responseText 获得字符串形式的响应数据。 responseXML 获得XML 形式的响应数据。
同步处理
异步处理(推荐)
相对来说比较复杂,要在请求状态改变事件中处理。
什么是readyState?
readyState是XMLHttpRequest对象的一个属性,用来标识当前XMLHttpRequest对象处于什么状态。
readyState总共有5个状态值,分别为0~4,每个值代表了不同的含义:
0:未初始化 — 尚未调用.open()方法;1:启动 — 已经调用.open()方法,但尚未调用.send()方法;2:发送 — 已经调用.send()方法,但尚未接收到响应;3:接收 — 已经接收到部分响应数据;4:完成 — 已经接收到全部响应数据,而且已经可以在客户端使用了;
什么是status?
HTTP状态码(status)由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
1xx(临时响应):表示临时响应并需要请求者继续执行操作的状态码。2xx(成功):表示成功处理了请求的状态码。3xx(重定向):表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。4xx(请求错误):这些状态码表示请求可能出错,妨碍了服务器的处理。5xx(服务器错误):这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
常见的状态码
仅记录在 RFC2616 上的 HTTP 状态码就达 40 种,若再加上 WebDAV(RFC4918、5842)和附加 HTTP 状态码 (RFC6585)等扩展,数量就达 60 余种。接下来,我们就介绍一下这些具有代表性的一些状态码。
200 表示从客户端发来的请求在服务器端被正常处理了。204 表示请求处理成功,但没有资源返回。301 表示永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。302 表示临时性重定向。304 表示客户端发送附带条件的请求时(指采用GET方法的请求报文中包含if-matched,if-modified-since,if-none-match,if-range,if-unmodified-since任一个首部)服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)400 表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。401 表示未授权(Unauthorized),当前请求需要用户验证403 表示对请求资源的访问被服务器拒绝了404 表示服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。500 表示服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障。503 表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。