1、创建异步对象 一般命名为xhr
var xhr = new XMLHttpRequest();
2、 设置请求行 open(请求方式,请求url)
1.get 需要在url后面拼接参数(如果有参数)
2.post请求不需要拼接参数
xhr.open("post","validate.php");
3、设置请求头:setRequestHeader()
1.get不需要设置
2.post需要设置请求头:Content-Type:application/x-www-form-urlencoded
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");.
如果没有设置,参数无法正确的传递到服务器(本质上说,如果没有参数,也不一定需要设置,不会影响请求的发送)
4、 设置请求体 send()
1.get的参数在url拼接了,所以不需要在这个函数中设置
2.post的参数在这个函数中设置(如果有参数)
xhr.send("username="+name);
5、让异步对象接收服务器的响应数据
一个成功的响应有两个条件:1.服务器成功响应了 2.异步对象的响应状态为4(数据解析完毕可以使用了)
当异步对象的响应状态发生改变的时候,会触发一个事件:onreadystatechange
xhr.onreadystatechange = function(){
判断服务器是否响应 判断异步对象的响应状态
if(xhr.status == 200 && xhr.readyState == 4){
//当返回的是xml格式的数据时: console.log(responseXML)
//当返回的是其他格式的数据时:console.log(responseText)
}
服务器响应状态码:
200: 访问的数据已经获取到了
404: 服务器端访问不到客户端请求的数据
500:服务器出错了
302: 重定向