写在前面:需要了解一定的HTTP和dom操作相关知识
一、Ajax介绍
1、本质
使用jacascript提供的XMLHttpRequset对象,异步的向服务器发送请求,并接受响应,实际上ajax接受到服务器返回来的数据,并不是完整的页面,而是一条条的数据,这样就可以在不刷新页面的情况下,动态的更新页面中的数据,使浏览器在向服务器发送请求时,不影响用户的其他操作,这就是ajax的异步特性。
2、使用场景
1、搜索引擎的建议搜索功能
2、聊天室功能
3、用户名合法验证功能
二、ajax的使用流程
1、创建XMLHttpRequest对象
var xhr=new XMLHttpRequest();
//简记为“”小黄人“”
2、绑定监听,获取响应数据
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
var result=xhr.responseText;
//result中就是服务器响应回来的数据
//可以用dom操作把它渲染到页面内
元素id名.innerHTML=result;
}
};
3、打开连接,创建请求
get方法
xhr.open("get","url",true);
url—路由+查询字符串
如:/user/login?uname=Tom&upwd=123456
true—同步
false—异步
post方法
xhr.open("post","url",true);
url—只有路由,数据在请求主体中发送(不用加查询字符串)
4、发送请求
get方法
xhr.send()
post方法
//设置请求消息类型
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//请求主体,拼接查询字符串 如:uname=Tom&upwd=123456
var formdata='uname='+Tom+'&upwd='+123456
xhr.send(formdata);
将头信息Content-type设置为application/x-www-form-urlencoded视为了传送“&”这个特殊字符,并且一定要在创建请求之后,发送请求之前。