jquery之利用ajax与服务器交谈(温习ajax之创建一个XHR实例)
----------
在完美的世界里,为一个浏览器编写的代码可以在所有常用的浏览器中正常工作。众所周知,我们并非生活在完美的世界里--即使有ajax,情况仍未改变。标准的办法是通过javascript的XHR对象来发起异步请求,而IE浏览器的专有办法是使用ActiveX控制。IE7提供模拟标准接口的包装器。但IE6则要求不同的代码。
一旦创建,用于设置、发起和响应请求的代码就是相对地独立于浏览器的,并且创建XHR实例对于任何特定的浏览器而言都很简便。问题是不同的浏览器以不同的方式来实现XHR,因此我们必须以适合于当前浏览器的方式来创建XHR实例。然而,不要依赖于检测用户正在运行哪一种浏览器以便决定选择哪一条路径,我们使用称为"对象检测"的更受青睐的技术。利用这种技术,我们试图弄清楚浏览器的实际功能是什么,而不是正在运行的是哪一种浏览器。对象检测使得代码更为健壮,因为它能够在支持所测试功能的任何浏览器中工作。
利用对象检测技术来初始化XHR实例的典型方法:
=====
创建之后,XHR实例跨越所有支持的浏览器实例,表现一组方便可靠的属性和方法。
方法 描述
abort() 导致当前正在执行的请求被取消
getAllResponseHeaders() 返回一个字符串,包含所有响应标头和名称和值
getResponseHeader(name) 返回指定的响应标头的值
open(method,url,async,username,password) 设置请求的方法和目标URL。请求可以声明为同步的(可选),也可以给需要基于容器认证的请求而提供用户和口令(可选)
send(content) 发起带有指定的体内容(可选)的请求
setRequestHeader(name,value) 利用指定的名称和值,设置一个请求标头
=====
属性 描述
onreadystatechange 指派在请求的状态发生变化时所使用的事件处理程序
readyState 一个整数值,指示请求的状态如下:
0 : 未初始化
1 :正在加载
2 :已加载
3 :交互
4 :完成
responseText 在响应里所返回的体内容
responseXML 如果体内容是xml,就根据体内容而创建XML DOM
status 从服务器所返回的响应状态码。例如:200表示成功,404表示未找到。
statusText 响应所返回的状态文本消息