ajax 全称就是 async javascript and xml , 意思就是 异步的javascript和XML
要向服务器发行请求,要通过 XMLHttpRequest 模块实现,但是呢,XMLHttpRequest模块基本上所有浏览器都支持(IE7及以上都支持),IE6及以下不支持,支持 ActiveXObject,如果你想实现所有浏览器都支持,就要进行兼容处理,话不多说,直接上代码:
// 1. 创建一个 XMLHttpRequest 实例
// 如果你想实现兼容处理,这么写:
let request
if(window.XMLHttpRequest){
request = new XMLHttpRequest()
}else{
request = new ActiveXObject("Microsoft.XMLHTTP")
}
// 不实现兼容处理就直接上:
let request = new XMLHttpRequest()
// 2. 1 发送GET请求
// 使用 open() 函数发送请求
// 如图:
open() 函数的参数:
第一个参数是 请求方式 GET 或者 POST
第二个参数是 地址,就是向什么地址发送请求
第三个参数是 是否开异步执行 ,true 就是开启,false 就是不开启
综合就是: open("GET"or"POST" , url , true)
之后就要使用 send() 函数发送出去
2.2 发送POST请求
POST请求要设置 setRequestHeade,
这是固定的,就是 setRequestHeader("Content-Type","application/x-www-form-urlencoded")
和GET请求不同的是,发送POST请求时, send() 函数的参数不能为空,即 null ,换句话说,你必须要上传递一些参数,例如:
send("name=zhangsan") 之类的
// 3. onreadystatechange 当 readyState属性发生改变时会触发相应的事件
readyState属性有五个值:
"0"请求未初始化,open还未调用
"1":服务器连接已经建立,open已调用
"2":请求已接收,也就是接收到头信息了
"3":请求处理中,也就是接收到响应主体了
"4":请求已经完成,且响应就绪,响应完成了
readyState == 4 说明请求完成,因此这个时候可以获取请求回来的数据。