<!-- ajax
是js的能力、手段
是js与php交互的方法
**解析ajax的字面意义**
a--async 异步
j--javascript 基于对象和事件驱动的客户端脚本语言
a--and 和
x--xml 可扩展标记语言
ajax方法不是很兼容 所以也要考虑兼容IE6 7 8
-->
<script type="text/javascript">
// 发送ajax请求的方法和注意事项
let url=''//为了方便,一般会把url的地址放在外边,以参数的形式代替
// 1 创建ajax对象
let xhr=new XMLHttpRequest()//同步的创建一个对象 //0 创建ajax对象成功
// 5 ajax的状态码改变的事件
xhr.onreadystatechange=function(){
// 只要ajax的状态码改变聚会触发,打印4次的执行结果
// 0-1 1-2 2-3 3-4 这4次
console.log(xhr.readyState)//1 2 3 4
// 在这个地方如果加上一个判断
// 当响应体回到了浏览器,但是还没有经过解析还不能使用的时候的情况
// 也就是等于2 的时候,2 代表了他回到了浏览器,但是还不能使用
if(xhr.readyState===2){
console.log('测试回到了浏览器还不能使用,就打印,否则不打印')
console.log(xhr.responseText)//打印响应体,此时应该是个空的
}
// 在给一个判断,当浏览器解析完毕的时候
if(xhr.readyState===4){
console.log('浏览器已经解析完毕,可以正常使用响应体')
console.log(xhr.responseText)//打印响应体 此时应该的到的是返回值,也就是后端的数据
}
}
// 2 配置请求信息
xhr.open ('get',url,true)//同步的配置信息,第三个参数决定了send的发送请求方式。 //1 代表配置信息成功
// true代表着异步 也可以不写。默认的就是true 。。false代表同步
// 4 接受响应
// xhr.onload=function(){//同步的接受响应
// console.log(xhr.responseText)
// }
// 3 发送请求
xhr.send()//异步的发送请求/// 2 3 4直接变成4
// 验证ajax的状态码
// 通过 ajax对象.readyState方法,打印xhr就可以看到返回值的变化
// 0 代表创建ajax对象成功,
// 1 代表配置信息成功
// 2 代表响应体已经回到浏览器但还不能使用,因为还有一个响应报文
// 3 代表浏览器正在解析响应报文(把响应报文里面的响应体分离出来)
// 4 浏览器分离响应体成功,本次请求结束
</script>