JavaScript在03年面临着被程序界淘汰的局面,除了些广告特效之外,没法与后台数据交互,再加上广告使得用户反感,所以一度被程序界放弃。但在03年微软的工程师在com++控件中封装得到了一个XMLHttpRequest对象后,被Google工程师发扬光大,发明了Ajax技术。可以说Ajax就是JavaScript得以生存到现在的直接原因。特别是10年左右的node.js的出现,JavaScript已经不仅仅是在客户端编程了,在服务器端也有了一席之地。
下面就来简单的说一下ajax是如何从服务器端来获取数据的。
Ajax的使用包括了四步:
1.得到XMLHttpRequest对象,注意ie6不兼容
2.得到XMLHttpRequest对象的open方法,注意参数问题
3.Ajax的回调函数,服务器响应之后,得到数据的处理
4.发送请求send方法。
<script type="text/javascript">
// ajax 分四步使用
var xhr=new XMLHttpRequest();// 1:得到XMLHttpReqquest: 如果存在IE6的用户,那么要做兼容问题
// 2. open主要要有三个参数: 第一个参数是字符串,代表html的请求方式:POST,GET,注意大写
//第二个参数表示我们要访问的地址URI
//第三个参数是一个boolean值,表示是否异步
// 当请求是GET时,参数可以直接在URi后面拼接,如: ajax.do?name=huahua&password=123
// 当参数拼接时,一定要加?表示携带参数,当存在多个参数时,每个参数间使用&拼接,注意参数时键值对的方式,以等号连接
xhr.open("GET","ajax.do",true);
//http的请求监听 3、ajax的回调函数
xhr.onreadystatechange =function(){
// 注意:回调函数会触发好几次,但是我们一般只会使用最后一次, 就是请求完成的触发,readyState等于4的时候
//0 请求未初始化(在调用 open() 之前)
//1 请求已提出(调用 send() 之前)
//2 请求已发送(这里通常可以从响应得到内容头部)
//3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
//4 请求已完成(可以访问服务器响应并使用它)
//readyState等于4表示请求已经结束,服务器响应完成
// status表示http请求的状态,200表示正常响应,404表示资源不可达(找不到), 500表示服务器端错误
if(xhr.readyState ==4&& xhr.status==200){
//ajax请求,服务器端返回的数据格式只有两种
//字符串JSON和XML
var box=document.getElementById("box");
box.innerHTML=req.responseText;
//responseText 表示接受的是字符串类型
};
// 发送ajax请求, xhr.send(null); post请求时,我们将参数传递在send方法中
xhr.send();
</script>
<body><div id="box"></div></body>