一、和HTTP的关系
和http协议关系密切,从请求到响应各步骤都可以体现。
二、五个状态
请求过程中,具有0到4五个状态,每个状态改变时都会触发onreadystatechange事件。
三、核心对象:XmlHttpRequest
各种方法模拟http协议通信过程,参数也与头信息格式很相似,以便读写所需的数据。
四、过程
1、创建XmlHttpRequest对象
2、设置请求方式、请求URL
3、发送请求
4、监听状态并即时处理(状态码判断sucess/error)
五、封装注意点
1、兼容性
IE中每次请求的URL必须是有变化的,才能保证接收到最新的请求资源。因此,可以在URL后面加上一段实时变化的字符串(请求主体),如日期、随机数;
IE6-不支持XmlHttpRequest对象,只支持ActiveXObject对象。
2、请求内容
GET方法:将内容字符串拼接到URL尾部,内容以参数形式,存在于open()。
POST方法:先在open()和send()之间加入setRequestHeader("application/x-www-form-urlencoded"),
内容以参数形式,存在于send()。
请求内容不能为中文,需要先用encodeURIConponent()作编码处理。
3、超时时间
设置超时时间,防止网络问题,让用户进行无用的等待。
4、基本参数
type, url, obj(请求内容), sucess, error, timeout
六、请求资源
请求的资源最终会保存在XmlHttpRequest对象的属性中,不同类型的资源会放在不同的属性上。
七、最佳传输格式
ajax的传输格式,最好是json格式,其他方面都用xml传输。