提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
解决了什么问题
在不更新网页的情况下去更新数据
一、核心
兼容写法
if(window.ActiveXObject){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}
二、用法
1.创建
var ajax = new XMLHttpRequest( )
2.打开
(1)同步
①ajax.open(“get”,“xxx.php”,false);
参数2:服务器地址
参数3:是否异步
②ajax.open(“post”,“xxx.php”,false)
ajax.setRequestHeader(“Content - Type”,“application/x-www-form-urlencoded”);
(2)异步
①ajax.open(“get”,“xx.php”,true)
②ajax.open(“post”,xxx.php,true)
ajax.setRequestHeader(“Content - Type”,“application/x - www - form - urlencoded”);
③发送后状态值 readystate
0——对象已建立,还未初始化,未调用send
1——open已调用,未调用send
2——send已调用,其他未知
3——请求已发送,正在接收数据
4——表示数据已经收到
(3)同步和异步的区别
同步:上一个任务结束,下一个任务开始。比如alert弹窗
异步:多个任务按顺序开始,不一定按顺序结束。比如同时下载多个图片,不一定同时下载好。
3.监听
ajax.onreadystatechange=function(){
console.log(ajax.responseText)
}
4.发送——ajax.send(null)
发送后返回四种参数
(1)responseText
作为响应的主体返回的文本
(2)responseXML
(3)status
200——成功
202——请求接收,处理未完成
400——语法错误
404——找不到指定url
500——内部服务器错误
(4)statusText
跨浏览器时可能不太一致