JS中的ajax

317 阅读2分钟

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行

javaScript中的ajax的基本使用步骤

//1.创建XMLHttpRequest对象,但是老版本IE(IE5和IE6)则要使用 ActiveX 对象,new ActiveXObject("Microsoft.XMLHTTP");
	//结合起来的兼容写法
	var xhr = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
//2.建立连接桥
	xhr.open(method,url,async);
	<!--method:请求类型,get或post
	    url:请求地址
	    async:是否异步,默认异步(true),同步(false)-->
//3.发送请求
	xhr.send(data);
	<!--data:请求体,仅用于post方法-->
//4.监听状态改变
	xhr.onreadystatechange = function(){
	var readyState = this.readyState;
	<!--readyState有五个状态:
	    0:初始化,请求代理对象	
	    1:open方法已经调用,建立一个与服务端特定端口的连接	
	    2:发送请求,已经接受到了响应报文的响应头,但还没有拿到响应体,即数据
	    3:正在接收响应体,有可能响应体为空,也有可能不完整,在这处理数据不保险	
	    4:响应体接收完成-->
//5.处理从服务器接收到的数据,一般是readyState == 4时,进行处理
	if(readyState != 4) return;
	// do something
	}

在h5提供了一个方法,onload(),XMLHttpRequest v2.0 定义的,即表示响应体已经接受完毕

xhr.onload(function(){
    //do something
});

XMLHttpRequest对象中一些重要的属性:

xhr.setRequestHeader('Accept','text/plain'):设置请求头
xhr.status:服务器返回的响应状态码,如200,,404......
xhr.statusText:获取响应状态描述
xhr.getResponseHeader('Content‐Type'):获取指定的响应头信息
xhr.getAllResponseHeader():获取全部的响应头信息
xhr..responseText:获取数据,文本形式
提示:如果接收到json的文本,可以使用Json。parse(text)转化成json数组
xhr.response:获取到的结果会根据xhr.responseType的变化而变化
提示:xhr.responseType是需要我们自己在客户端设置的,且xhr.response有兼容性,IE10以上才能用
xhr.responseXML:获取XML格式的数据,现在一般不使用了