用惯了jQuery框架的ajax方法操作,感觉封装了之后,使用起来实在很简单,于是自己也模仿了一个,虽然没有jQuery那么强大
但是原理是一样的,写出来留个记忆:
创建xmlhttprequest对象
1 function CreateXMLhttpRequest() {
2 if (window.XMLHttpRequest) {
3 return new XMLHttpRequest();
4 }
5 if (ActiveXObject) {
6 var arryxml = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
7 for (var i = 0; i < arryxml.length; i++) {
8 try {
9 return new ActiveXObject(arryxml[i]);
10 }
11 catch (e) {
12 alert('未能找到驱动');
13 }
14 }
15 }
16
创建Ajax类
1 function Ajax(url, options) {
2 var xmlhttp = CreateXMLhttpRequest();
3 xmlhttp.onreadystatechange = function() {
4 if (xmlhttp.readyState == 4) {
5 if (xmlhttp.status == 200) {
6 var header = xmlhttp.getResponseHeader("Content-Type");
7 var txt = null;
8 if (header.indexOf("text/html") != -1) {
9 txt = xmlhttp.responseText;
10
11 }
12 if (header.indexOf("text/xml") != -1) {
13 txt = xmlhttp.responseXML;
14 }
15 if (header.indexOf("application/json") != -1) {
16 txt = xmlhttp.responseText.toJSONString();
17 }
18 options.func.call(xmlhttp,txt);
19
20 }
21
22 }
23
24 };
为了演示起来简单,此处我使用了jQuery框架:
使用演示
1 $(function() {
2 $("#getjson").click(function() {
3 var id = "cyc";
4 var type = "post";
5 Ajax("Responses", {
6 method: 'POST',
7 send: "ddd=" + id + "&ss=" + type,
8 func: function(re) {
9 alert(re); }
10 });
11
12 });
13 });