AjaxHelper的get和post请求的封装类

      最近在学习ajax的时候发现不断的调用get和post请求时,代码重复很多,有的公司会用自带的封装的方法,这个可以直接调用ajax的方法,但是在运用的时候我们也应该学习它是怎么封装的和一些原理性的东西,Ajax技术在很多网站的开发都会用到,异步刷新大大提高了网站的性能。ajax的请求我们归结了五部曲,下面是我自己通过查找资料和学习总结的ajax的get和post请求的封装类。

代码:

 1 var ajaxHelper = {

 2     //1.得到异步对象

 3     GetXhr: function () {

 4         var xhr;

 5         if (window.XMLHttpRequest) {

 6            //兼容新式浏览器

 7             xhr = new XMLHttpRequest();

 8         } else { //兼容IE老式浏览器

 9             xhr = new ActiveXObject("Microsoft.XMLHTTP");

10         }

11         //返回异步对象

12         return xhr;

13     },

14     //2.定义get请求

15     ajaxGet: function (url, callback) {

16         this.ajaxComm("get", url, null, callback);

17     },

18     //3.定义post请求

19     ajaxPost: function (url,params,callback) {

20         this.ajaxComm("post",url,params,callback);

21     },

22     //4.公共请求方法

23    //method:get,post

24    //url:需要发送的请求地址

25    //parms:发送给服务器的数据,post的时候才有值,get为null

26    //callbakc:请求成功以后的回调函数

27     ajaxComm: function (method, url, params, callbakc) {

28         //1.0创建异步对象

29         var xhr = this.GetXhr();

30         //2.0设置请求的参数

31         xhr.open(method, url, params, callbakc);

32         //3.0防止缓存

33         if (method == "get") {

34             xhr.setRequestHeader("If-Modified-Since", "0");

35         } else {

36             xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

37         }

38         //4.0设置回调函数

39         xhr.onreadystatechange = function () {

40             if(xhr.readyState==4&&xhr.status==200){

41                 var objdata = xhr.responseText;

42                 var data = JSON.parse(objdata);

43                 //执行业务逻辑

44                 callbakc(data);

45             }

46         }

47         //5.0发送请求

48         xhr.send(params);

49 

50     }

51 }

 

你可能感兴趣的:(Ajax)