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所示。
| 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时,服务器响应正确,否则响应不正常。