• 自己封装的一个Ajax小框架


    代码如下:

     1 /**
     2 * frameAjax 
     3 * 
     4 * 参数:
     5 * paramsObj: Json
     6 * required params:
     7 * type:请求类型(String)
     8 * url:请求地址(String)
     9 * data:请求参数(Json),data可为空值。
    10 * success:请求回调(Function)
    11 * async:表示请求是否异步处理。默认为true,表示异步,可省略不写。
    12 * 
    13 */
    14 
    15 (function () {
    16     function frameAjax(paramsObj) {
    17         //处理请求参数
    18         var arr = [];
    19         for (var pro in paramsObj.data) {
    20             arr.push(pro + '=' + paramsObj.data[pro]);
    21         }
    22         var data = arr.join("&");  //用“&”拼接请求参数
    23         var async = true; //默认异步
    24         if (paramsObj.async) {  //判断是否异步处理
    25             async = paramsObj.async;
    26         }
    27 
    28         //创建Ajax引擎对象
    29         var ajax = getAjax();
    30         //复写onreadystatement函数
    31         ajax.onreadystatechange = function () {
    32             //判断Ajax状态码
    33             if (ajax.readyState == 4) {
    34                 //判断响应状态码
    35                 if (ajax.status == 200) {
    36                     if (paramsObj.success) {
    37                         paramsObj.success(ajax);
    38                     }
    39                 } else if (ajax.status == 404) {
    40                     console.error("请求资源不存在");
    41                 } else if (ajax.status == 500) {
    42                     console.error("服务器繁忙");
    43                 }
    44             }
    45         }
    46 
    47         //发送请求
    48         if (paramsObj.type.toLowerCase() == "get") {
    49             ajax.open("get", paramsObj.url + (data == null ? "" : "?" + data), async);
    50             ajax.send(null);
    51         } else if (paramsObj.type.toLowerCase() == "post") {
    52             ajax.open("post", paramsObj.url, async);
    53             ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    54             ajax.send(data);
    55         } else {
    56             console.log("请求类型错误");
    57         }
    58     }
    59 
    60     //获取请求对象
    61     function getAjax() {
    62         var ajax;
    63         if (window.XMLHttpRequest) { //火狐
    64             ajax = new XMLHttpRequest();
    65         } else if (window.ActiveXObject) { //IE
    66             ajax = new ActiveXObject("Msxml2.XMLHTTP");
    67         }
    68         return ajax;
    69     }
    70     //将框架封装于window对象中
    71     window.frameAjax = frameAjax;
    72 }())
  • 相关阅读:
    ASP.NET MVC 扩展相关
    新.NET开发十大必备工具
    c#调用存储过程两种方法
    TweakUI取消pc喇叭声
    baidu mp3竟然还加密,太扯了
    NTLM在使用代理服务器的情况下,第三次握手可能出错
    httpclient解析gzip网页
    eclipse不能自动编译工程的解决方法
    bat设置环境变量
    java的ZipOutputStream压缩文件的两个问题(乱码和每次zip后文件md5变化)
  • 原文地址:https://www.cnblogs.com/dylanzou/p/12305043.html
Copyright © 2020-2023  润新知