2.1.2 XMLHttpRequest对象的属性

2.1.2 XMLHttpRequest对象的属性

XMLHttpRequest对象常用的属性如下:

readyState属性

readyState:该属性用于获取XMLHttpRequest对象的处理状态.

readyState属性值 描述
0 XMLHttpRequest对象还未开始发送请求
1 XMLHttpRequest对象开始发送请求
2 XMLHttpRequest对象的请求发送完成
3 XMLHttpRequest对象开始读取服务器的响应
4 XMLHttpRequest对象读取服务响应结束

响应相关属性

responseType属性

responseType:该属性用于设置服务器返回的响应类型

response属性

response:该属性用于获取服务器响应。不同responseType对应的response如表2.2所示。

表2.2 responseType与response
reponseType属性 response属性
"" response属性返回DOMString,默认
"arraybuffer" response属性返回ArrayBuffer二进制数据
"blob" response属性返回Blob对象
"document" response属性返回Document对象,与responseXML返回值相同
"json" response属性返回JavaScript对象,该对象通过解析服务器响应的JSON字符串得到
"text" response属性返回DOMString,默认
  • responseText:该属性用于获取服务器的响应文本。
  • responseXML:该属性用于获取服务器响应的XML文档对象。
  • responseURL:该属性返回服务器响应来自的URL

响应状态

  • status:该属性是服务器返回的状态码,只有服务器的响应已经完成时,才会有该状态码
  • statusText:该属性是服务器返回的状态文本信息,只有当服务器的响应已经完成时,才会有该状态文本信息。

服务器响应状态码

通过检测XMLHttpRequest对象的status属性,即可判断服务器的响应是否正常。当服务器的响应正常时,JavaScript才应该读取服务器响应信息,并将响应信息动态加载到目标页面。服务器常用的状码及其对应的含义如下。

  • 200:服务器响应正常
  • 304:该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意。
  • 400:无法找到请求的资源。
  • 401:访问资源的权限不够。
  • 403:没有权限访问资源
  • 404:需要访问的资源不存在
  • 405:需要访问的资源被禁止访问。
  • 407:访问资源需要代理身份验证。
  • 414:请求的URL太长。
  • 500:服务器内部错误

发送相关属性

  • timeout:设置XMLHttpRequest对象发送请求的超时时长,以ms为单位。
  • ontimeout:绑定事件处理函数的属性。该属性用于指定XMLHttpRequest对象发送请求超时后触发的事件处理函数。
  • upload:该属性返回XMLHttpRequest对象的上传进度。通过为该对象的progress事件注册事件处理函数,可以实时监听XMLHttpRequest对象的上传进度。

其他属性

  • withCredentials:该属性设置跨站点访问的请求是否应该使用安全凭证(如Cookie、授权头或TLS客户端证书等)。设置该属性对相同站点的请求不会有任何影响。

响应处理流程

如果想通过JavaScript获取服务器响应,只要为XMLHttpRequest对象的load事件注册事件处理函数即可。获取服务器响应之后,还应判断服务器响应是否正确,要判断服务器响应是否正确,可判断XMLHttpRequest对象的status属性。status值为200时,服务器响应正确,否则响应不正常