1.什么是Ajax?
(1)Asynchronous JavaScript + XML 的简写
(2)是用javascript写的
(3)这种技术能够想服务器请求额外的数据而无须卸载页面(即刷新),会带来更好的用户体验。
2.异步,同步
(1)异步
指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程
(2)同步
指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。
3.XMLHttpRequest
(1)Ajax的技术核心是XMLHttpRequest对象(简称XHR)
(2)IE7+、Firefox、Opera、Chrome 和Safari 都支持原生的XHR 对象,在这些浏览器中创建XHR 对象可以直接实例化XMLHttpRequest 即可。
var xhr = new XMLHttpRequest();
(3)在使用XHR 对象时,先必须调用open()方法,它接受三个参数:要发送的请求类型(get、post)、请求的URL 和表示是否异步(true 表示异步,false 表示异步)。
xhr.open(‘get‘,‘url’, false);
(4)open()方法并不会真正发送请求,而只是启动一个请求以备发送。通过send()方法进行发送请求,send()方法接受一个参数,作为请求主体发送的数据。如果不需要则,必须填null。
(5)一般来说,向服务器发送POST 请求由于解析机制的原因,需要进行特别的处理。因为POST 请求和Web 表单提交是不同的,需要使用XHR来模仿表单提交。
xhr.setRequestHeader(‘Content-Type’, ‘application/x-www-formurlencoded’);
4.XHR对象的属性
服务器接受响应之后,响应的数据会自动填充XHR对象的属性。
status
响应的服务器的状态
服务器的状态响应码 | 说明 |
---|---|
200 | 服务器成功返回了页面 |
404 | 指定的URL在服务器上找不到 |
400 | 语法错误导致服务器不识别 |
500 | 服务器遇到意外错误,无法完成请求 |
responseText
作为响应主体返回的文本
xhr.onreadystatechange 事件
1.使用异步调用的时候,需要触发xhr.onreadystatechange 事件
2. 当readyState==4时,说明已经接受到全部响应数据,而且可以使用;