Ajax:
异步无刷新技术。能够请求后台发送和获取数据,而无需卸载页面(刷新页面)。
核心对象:
XMLHttpRequest对象
var xhr = new XMLHttpRequest()
在使用 XHR 对象时,先必须调用 open()方法,它接受三个参数:要发送的 请求类型(get、post)、请求的 URL 和表示是否异步。open()方法并不会真正发送请求,而只是启动一个请求以备发送。
通过 send()方法进行发送请求,send()方法接受一个参数,作为请求主体发送的数据。如果不需要则,必须填 null。执行 send()方法之后,请求就会发送到服务器上。
发送的请求的步骤:
1、得到XMLHttpRequest对象
new XMLHttpRequest()
2、准备请求 open(请求类型GET/POST,请求的URL,是否异步)
xhr.open(请求类型GET/POST,请求的URL,是否异步);
3、发送请求 send([参数])
xhr.send([参数])
注:如果是GET请求,请求的参数设置在url的后面,所以send(null)
如果是POST请求,无参数设置为null,有参数则设置参数即可
4、判断响应状态,得到后台响应
xhr.responseText;
同步调用固然简单,但使用异步调用才是我们真正常用的手段。
使用异步调的时候,检测 readyState 属性,每当 readyState 属性改变时,触发readystatechange 事件。
这个属性有五个值:
值 状态 说明
0 未初始化 尚未调用 open()方法
1 启动 已经调用 open()方法,但尚未调用 send()方法
2 发送 已经调用 send()方法,但尚未接受响应
3 接受 已经接受到部分响应数据
4 完成 已经接受到全部响应数据,而且可以使用