原生Ajax写法(GET)
ajax的GET提交方式的原生代码:
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else if(window.ActiveXObject){
xhr = new ActiveXObject()
}else{
xhr = null;
}
if(xhr){
xhr.open('GET','../data/data.json');
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
alert(eval("("+xhr.responseText+")").result);
xhr = null;
}
}
xhr.send(null);
}
XMLHttpRequest() 这个对象可以在不重新加载页面的情况下从后台获取数据,支持的浏览器有IE7+、Firefox、Chrome、Safari 以及 Opera
ActiveXObject(“Microsoft.XMLHTTP”) 这个对象是针对老式ie浏览器的
onreadystatechange事件 当readyState的值发生改变时触发此事件
open() 这个方法有三个参数,open("提交方式 get/post","资源的地址",异步或者同步 true/false);
readyState 准备状态
0 (未初始化)对象已建立,但是尚未初始化(尚未调用open方法)
1(初始化)已调用send()方法,正在发送请求
2(发送数据)send()方法调用完成,但是当前的状态及http头未知
3(数据传送中)已接收部分数据,因为相应及http头不全,这时通过responseText获取部分数据会出现错误
4(完成)数据接收完成,此时可以通过responseText获取完整的数据
status 请求状态
200(成功)
404(没有发现文件)
500(服务器内部错误)
responseText 请求成功后获取数据