一、什么是ajax?
AJAX(Asynchronous Javascript And XML)译为异步的JavaScript和XML。通过XMLHttpRequest创建对象,向服务器发送异步请求,从服务器获取数据,然后用js操作DOM从而更新页面。其中最关键的一步就是从服务器获取请求数据。
二、ajax的请求步骤
1 //创建异步对象
2 var xhr = new XMLHttpRequest();
3
4 //确定发送请求的方式、地址和是否异步(true表示异步),get请求的参数写在地址后面,格式为test.php?id=1&name=zat
5 xhr.open('get', 'test.php', true);
6
7 //发送post请求
8 //xhr.open('post', 'test.php', 'true');
9 //xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
10
11 //发送请求
12 xhr.send();
13
14 //发送post请求,带有参数
15 //xhr.send('name=zat&age=18');
16
17 //检测服务器是否把数据返回
18 xhr.onreadystatechange = function(){
19 if(xhr.readyState == 4){
20 if(xhr.status == 200){
21 alert(xhr.responseText);
22 }else{
23 alert('出错了,err :' + xhr.status);
24 }
25 }
26 }
三、ajax的5种工作状态
readyState:
0(未初始化)对象已经创建,但是尚未初始化,还没调用open方法。
1(初始化)对象已经初始化,并且调用open方法,但还未调用send方法。
2(发送数据)调用send方法,但是正在等待状态码和头的返回。
3(正在接收)已经接收部分数据,因为响应和http头不完整,所以还不能使用该对象的属性和方法。
4(完成)数据接收完成,此时可以通过responseText和responseXML获取完整的响应数据。
四、http状态码
http状态码由三位数构成,首位数字定义了状态码的类型。
1xx:信息类,web请求正在进一步处理;
2xx:200表示返回成功;
3xx:304表示已经缓存请求;
4xx:404表示访问的页面不存在;
5xx:表示服务器错误。
五、ajax优缺点
(1)ajax优点
- 最大的优点是使用异步的方式与服务器通信,达到不用刷新页面也能与服务器通信,不需要打断用户的操作,用户体验好,响应能力快;
- 可以把以前一些服务器的工作转嫁给客户端,利用客户端闲置能力进行处理,减轻服务器和带宽的压力,节约空间和宽带的租用成本;
- ajax是基于标准化的并且被广泛支持的技术,不需要下载插件和小程序。
(2)ajax缺点
- ajax干掉了back和history功能,所以对浏览器机制造成了破坏;
- 安全问题:
- ajax技术如同对企业数据建立了一个直接通道,这使开发者在不经意间会暴露比之前更多的数据和服务器逻辑;
- ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击;
- ajax也难以避免一些已知的安全弱点,诸如SQL注入攻击等。
- 对搜索引擎支持较弱,如果ajax使用不当,会增大网络数据流量,降低整个系统的性能;
- 破坏程序的异常处理机制。
六、传输的数据是明文还是暗文?
ajax的get和post方式请求数据都是明文。