使用XMLHttpRequest对象创建原生的Ajax请求。
现在的浏览器(IE7+,chrome,firefox等)均支持 XMLHttpRequest 对象,但对于早期的IE浏览器使用ActiveXObject对象。
创建方式
var xmlhttp;if (window.XMLHttpRequest) //首先判断浏览器的类型 { xmlhttp=new XMLHttpRequest(); //如果是支持XMLHttpRequest }else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //如果是早期的IE浏览器 }
创建后XMLHttpRequest对象后,就可以与服务器进行数据的交换。
有两个方法:一个是open(),另一个是send(),分别用于打开连接,和发送数据。
open()方法接受三个参数,1、method,指定请求类型get或post。2、url,服务器的地址。3、async,指定是异步还是同步。
send()方法只接受一个参数,即url,请求的服务器路径。
xml.open("POST","login.do",false); xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xml.send(url);
返回结果
返回的结果的值均会封装到xml对象中,它有多个属性,在这里主要看两个属性readyState和status
HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4。
下表列出了状态、名称和含义:
0 | Uninitialized |
| |
1 | Open |
| |
2 | Sent |
| |
3 | Receiving |
| |
4 | Loaded |
|
对于status属性,即为200则请求返回成功,所以代码如下:
if(xml.readyState==4&&xml.status==200) { alert(xml.responseText); }
这样,一个完整的原生的Ajax请求就完成了。
但实际上,由于JQuery的封装,我们已经很少这么做了,下面来看看使用JQuery是怎么进行ajax请求的。
Query实现 Ajax 的方法就简单很多了,已经封装好了一个 $.ajax
函数,调用很方便。
$.ajax({ type: "POST", //发送是以POST还是GET url: "login.do", //发送的地址 dataType: "json", //传输数据的格式 data: {"username": "cg","password": 123456}, //传输的数据 //成功的回调函数 success: function(msg) { console.log(msg) }, //失败的回调函数 error: function() { console.log("error") } })
当然,要使用JQuery的封装请求,需要有JQuery库的支持。