77-ajax发送异步请求




ajax发送异步请求
四步操作

1.XMLHttpRequest 
大多数浏览器都支持
var xmlHttpRequest = new XMLHttpRequest();

但是有少数的浏览器不支持
IE6.0要这样
var xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
非常麻烦,很无语

还有IE5.5以及更早版本的IE
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

其实呢IE6.0以及之前的,没什么用了
如果是我,我就不写了,不管这些版本的垃圾浏览器了



编写一下创建XMLHttpRequest对象的函数
function createXMLHttpRequest(){
	try{
		return new XMLHttpRequest();
	}catch(e){
		return new ActiveXObject("Msxm12.XMLHTTP");
	}
}

当然可以多套几层,把不同的创建对象的方式都写进去
但是我不想写了



第二步
xmlHttp.open()
用来打开与服务器的连接,需要三个参数
1.请求方式
2.请求url
3.请求是否为异步, true就是异步,否则为同步请求

xmlHttp.open("GET","/test/ABCServlet",true);




第三步
xmlHttp.send(null)
不传null的话可能会造成部分浏览器无法发送
这个参数是什么意思
就是请求体内容,如果是GET请求,必须给出NULL
如果是POST,要给出请求体




第四步
在xmlHttp对象的一个事件上,注册监听器
onreadystatechange
xmlHttp对象一共有5个状态
0: 初始化未完成状态,只创建了xmlHttpRequest对象,还没有open
1: 请求已经开始,open已经调用,但是还没有send
2: 请求发送完成,send方法已经调用
3: 开始读取服务器响应
4: 读取服务器响应结束

得到xmlHttp对象的状态
var state = xmlHttp.readState;
可能是0,1,2,3,4


得到服务器响应的状态码
var status = xmlHttp.status;
比如 200,404,500

服务器响应内容
var content = xmlHttp.responseText;
服务器响应的文本格式内容
var content = xmlHttp.responseXML;  //得到服务器响应的xml格式内容
会自动解析,拿到的时候,已经是document对象了


//xmlHttp的5种状态都会调用这个方法
xmlHttp.onreadystatechange = function(){
	
	//双重判断
	//判断是否为4状态
	//是否是200成功
	if(xmlHttp.readyState==4&& xmlHttp.status==200){
		//获取服务器响应内容
		var text=xmlHttp.responseText;
	}
}




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值