1.1 AJAX工作原理
AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML技术),通过ajax可以在浏览器中向服务器发送异步请求,最大优势:无需刷新获取数据。ajax不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。
AJAX向HTTP发送请求包括请求行
请求头
请求体
请求的资源就是URL的地址,请求的方式有GET,HEAD,POST,浏览器向服务器发送的内容称之为请求,客户端给浏览器返回的结果称之为相应
1.2对XMLHttpRequest对象的属性
(1)responseText
默认值为空字符串 ""。只有当 responseType 为 text、""时,xhr 对象上才有此属性,此时才能调用 xhr.responseText ,否则抛错。只有当请求成功时,才能拿到正确值。以下 2 种情况下值都为空字符串 "":请求未完成、请求失败。
(2)responseXML
默认值为 null。只有当 responseType 为 text、""、document时,xhr 对象上才有此属性,此时才能调用 xhr.responseXML,否则抛错。只有当请求成功且返回数据被正确解析时,才能拿到正确值。以下 3 种情况下值都为 null :请求未完成、请求失败、请求成功但返回数据无法被正确解析时。
(3)status 和 statusText
status 属性表示 HTTP 响应状态码,如 200、302、400等。
statusText 属性表示 HTTP响应状态的描述文本,如 OK、Not Found等。
(4)onreadystatechange事件
无论readyState值何时发生改变,XMLHttpRequest对象都会激发一个readystatechange事件。其中,onreadystatechange属性接收一个EventListener值-向该方法指示无论readyState值何时发生改变,该对象都将激活。
1.3对XMLHttpRequest对象的方法
(1)open方法
open(method,url, async, username, password) 用来进行初始化工作。返回值:得到一个包含send()方法的对象。method:必须。用于指定HTTP请求方法,支持所有HTTP的方法,如GET,POST,head。uri:请求的服务器的地址,自动解析成绝对地址。async:请求是否异步,true表示你异步,false表示同步,默认为true。username,password:可以不指定,分别表示用户名和密码,提供HTTP认证机制需要的用户名和密码。调用open后,readystate状态为1。
(2)abort()方法
该方法可以暂停一个HttpRequest请求或者HttpResponse的接收,并且将XMLHttpRequest的状态设置为初始化。
(3)send()方法:
在调用oepn()方法准备好一个请求后,还需要把该请求发送到服务器,这时就需要调用send()方法。send()方法中包含了一个可选的参数,该参数可以包含可变类型的数据。
(4)setRequestHeader(DOMString Header,DOMString value)方法:
该方法用来设置请求的头部信息,该方法的调用必须在调用open()方法之后。
(5)getResponseHeader(DOMString header)方法:
该方法用来得到首部信息,其中header参数表示要得到的首部。该方法仅当readyState值是3或4时才可调用,否则会返回一个空字符串。
XMLHttpRequest对象的使用需要四个步骤:
(1) 初始化XMLHttpRequest对象
(2) 指定响应处理函数
(3) 发送HTTP请求
(4) 处理服务器返回的信息