Ajax
Ajax
Asynchronous JavaScript and Xml异步的JavaScript和Xml.用来改善用户体验技术,使用XMLHttpRequest对象一部地向服务器发送请求,服务器返回部分数据而不是一个完整的页面,页面无刷新效果改变页面中的部分内容.
发送异步请求步骤
1.获取Ajax对象:获取XMLHttpRequest对象实例
var xhr=getXhr();
function getXhr(){
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
return xhr;
}
2.设置回调函数:为Ajax对象的onreadystatechange事件设定响应函数
function fn(){
if(xhr.readyState==4&&xhr.status==200){
var txt=xhr.responseTest;
//DOM操作
}
}
3.创建请求:调用XMLHttpRequest对象的open方法
1).创建请求-GET请求
xhr.open('get','xx.do',true);
注:
true:表示发送异步请求(当Ajax对象发送请求时,用户仍然可以对当前页面做其它的操作).false:表示发送同步请求(当Ajax对象发送请求时,浏览器会锁定当前页面,用户不能对当前页面做其它操作).
2).创建请求-POST请求
xhr.open('post','xx.do',true);
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
setRequestHeader作用:因为HTTP协议要求发送post请求时,必须有content-type消息头,但是默认时xhr(Ajax对象)不会添加该消息头,所以,需要调用setRequestHead方法,添加这个消息头
4.发送请求:调用Ajax对象的send方法
GET 请求:xhr.send(null)
POST 请求:xhr.send(name=value&name=value.....)
GET请求:
-send方法内传递null
-若要提交数据,则在open方法的"URL"后面追加
-如:xhr.open("get","xx.do?name=value&name=value",true)