[TOC]
ajax主要解决了异步操作,通俗一点来讲就是在不刷新的页面的前提下,更新页面的数据。
ajax的核心就是XMLHttpRequest(xhr)。
使用原生ajax主要分为4个步骤:
1.创建对象
2.打开请求;
①method是发送请求的方式一般常用的有get,post
关于post和get区别:
(1)Get使用URL传参。而POST将数据放在BODY中。
(2)GET的URL会有长度上的限制(浏览器本身支持?服务器加限制截掉url),则POST的数据则可以非常大。
(3)POST比GET安全,因为数据在地址栏上不可见。
②url请求的地址。
③async是否异步取值有true/false.一般取值true;
使用举例
xhr.open(“get”,”exmple.txt”,true)
3.发送请求;
4.接受响应;
1)可以通过检查xhr.readyState的值,来判断对应的请求处于什么状态
•0: 未初始化。尚未调用open()方法
•1: 启动。已经调用open()方法,尚未调用send()方法
•2: 发送。已经调用send()方法,尚未收到响应。
•3: 接收。已经接收到部分数据。
•4: 完成。已经接收到全部响应数据。
•当readystate值从一个值变为另一个值时,都会触发readystatechange事件。我们可以通过绑定onreadystatechange事件,来监听readystate的值是否为4
2)查看xhr.status值,查看服务器的响应结果
•0 本地请求,服务器成功返回了页面
•200 OK 服务器成功返回了数据或者页面
•400Bad Request 语法错误导致服务器不识别
•401Unauthorized 请求需要用户认证
•404 Not found 指定的URL在服务器上找不到
•500Internal Server Error 服务器遇到意外错误,无法完成请求
•503ServiceUnavailable 由于服务器过载或维护导致无法完成请求
3)如果1、2返回结果成功,则可以通过xhr的responseText,获得响应的内容
完整过程举例: