XMLHttpRequest 对象
1.XMLHttpRequest 对象:它可以异步从服务器端获取txt或者xml数据 json
·创建对象:var request=new XMLHttpRequest();
ie低版本:=new ActiveXObject("Mircosoft.XMLHTTP");
·初始化request.open("get","处理程序URL",true):url不能包含中文;true异步、false同步
encodeURIComponent("中文"),url中的参数(中文,其他)需要编码
·注册事件,回调函数request.onreadystatechange=function();
在回调函数中接收if(readyState==4) request.responseText;
·发送请求request.send();
readyState属性:指出了XMLHttpRequest对象在发送/接收数据过程中所处的几个状态。
0:未初始化。new完后还没有open
1:已打开。对象已经创建并初始化,但还未调用send方法
2:已发送。已经调用send 方法,但该对象正在等待状态码和头的返回;
3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
4:已加载。所有数据接收完毕
方法:
abort 取消请求
open 需要使用多个参数,第一个设置方法属性,第二个设置目标URL,第三个指定是同步(false)还是异步(true)发送请求
send 发送请求到服务器
setRequestHeader 添加自定义HTTP头到请求
getAllResponseHeaders 获取HTTP响应头的整个列表
getResponseHeader 仅获取指定的HTTP响应头
属性:
Onreadystatechange(事件) 返回或设置异步请求的事件处理程序
readyState 返回状态码:0:未初始化;1:打开;2:发送;3:正在接收;4:已加载
responseText 使用字符串返回HTTP响应
responseXML 使用XML DOM对象返回HTTP响应
status 返回HTTP状态码
ajax get请求要注意的问题
1区分大小写
2请求路径中不能有中文
3 url传参数:有中文或者特殊符号,要进行url编码encodeURIComponent();QueryString会自动解码
4判断服务器是否有异常 readyState 是XMLHttpRequest的状态(0-5) status 是http的状态 状态码
5解决每次get请求的时候读取缓存问题
.meta设置
<meta http-equiv="pragram" content="no-cache"> 禁止浏览器从本地缓存中调阅页面。网页不保存在缓存中,每次访问都刷新页面。
<meta http-equiv="cache-control" content="no-cache, must-revalidate"> 重新加载页面
<meta http-equiv="expires" content="0"> 网页在缓存中的过期时间为0,一旦网页过期,必须从服务器上重新订阅。
·url参数中加随机数
·请求头中加request.setRequestHeader("If-Modified-Since", "0");注意要在open之后加。