语法:
1. 发送请求:
1.1. 创建xhr对象
new xhrRequest()
1.2. 设置请求行
如: xhr.open("GET","ajax_info.txt",true);
3.1. 说明:
- 第三个参数为是否异步, 通常选true
1.3. 设置请求头
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.setRequestHeader("name","key");
说明:
- 该方法可多次调用, 每调用一次, 就为请求头增加一对键值对
1.4. 设置请求体并发送请求:
xhr.send("fname=Henry&lname=Ford");
1.5. 实例:
- 发送get请求
xhr.open("GET","ajax_info.txt",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send();- 发送POST请求
xhr.open("POST","/try/ajax/demo_post2.php",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("fname=Henry&lname=Ford");send方法中填写请求体
2. 处理响应:
2.1. 请求阶段:
xhr.readyState
存有 xhrRequest 的状态。从 0 到 4 发生变化。
- 0: 请求未初始化
- 1: 服务器连接已建立
- 2: 请求已接收
- 3: 请求处理中
- 4: 请求已完成,且响应已就绪(我们通常等待这个阶段)
2.2. 响应状态:
child::http 状态码
xhr.status
- 200: “OK”
- 200到300都表示请求成功
- 404: 未找到页面
2.3. 获取响应体
xhr对象中的属性:
- responseText
- 获得字符串形式的响应数据。
- responseXML
- 获得 XML 形式的响应数据。
2.4. 响应函数
https://www.runoob.com/ajax/ajax-xhrrequest-onreadystatechange.html
xhr.onreadystatechange=callback
用以存储函数(或函数名),每当 xhr.readyState 属性改变时,就会调用xhr.onreadystatechange。
2.5. 实例:
xhr.onreadystatechange=function()
{
if (this.readyState==4 && this.status>=200 && this.status<=300)
{
document.getElementById("myDiv").innerHTML=this.responseText;
}
}