封装的一个Ajax小框架

访客3年前黑客工具765

在履历了Jsp实训的惨痛教训后,特意花了点时间学习Ajax,学完后自我感觉良好,于是写了如下一个小框架:  

/**
* frameAjax 
* 
* 参数:
* paramsObj: Json
* required params:
* type:请求参数类型(String)
* url:请求地址(String)
* data:请求参数(Json),data可为空值。
* success:请求回调(Function)
* async:示意请求是否异步处置。默以为true,示意异步,可省略不写。
* 
*/

(function () {
    function frameAjax(paramsObj) {
        //处置请求参数
        var arr = [];
        for (var pro in paramsObj.data) {
            arr.push(pro + '=' + paramsObj.data[pro]);
        }
        var data = arr.join("&");  //用“&”拼接请求参数
        var async = true; //默认异步
        if (paramsObj.async) {  //判断是否异步处置
            async = paramsObj.async;
        }

        //建立Ajax引擎工具
        var ajax = getAjax();
        //复写onreadystatement函数
        ajax.onreadystatechange = function () {
            //判断Ajax状态码
            if (ajax.readyState == 4) {
                //判断响应状态码
                if (ajax.status == 200) {
                    if (paramsObj.success) {
                        paramsObj.success(ajax);
                    }
                } else if (ajax.status == 404) {
                    console.error("请求资源不存在");
                } else if (ajax.status == 500) {
                    console.error("服务器忙碌");
                }
            }
        }

        //发送请求
        if (paramsObj.type.toLowerCase() == "get") {
            ajax.open("get", paramsObj.url + (data == null ? "" : "?" + data), async);
            ajax.send(null);
        } else if (paramsObj.type.toLowerCase() == "post") {
            ajax.open("post", paramsObj.url, async);
            ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            ajax.send(data);
        } else {
            console.log("请求类型错误");
        }
    }

    //获取请求工具
    function getAjax() {
        var ajax;
        if (window.XMLHttpRequest) { //火狐
            ajax = new XMLHttpRequest();
        } else if (window.ActiveXObject) { //IE
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
        }
        return ajax;
    }
    //将框架封装于window工具中
    window.frameAjax = frameAjax;
}())


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

车知道(万车网车知道)

万得汽车网联智能(深圳)有限公司是2018-07-25在广东省注册成立的有限责任公司(台港澳法人独资),注册地址位于深圳市前海深港合作区前湾一路1号A栋201室。 瓜子二手车,已经因为违规,被罚款16...

美国加利福尼亚州怎么样(美国加利福尼亚州发

美国加利福尼亚州怎么样(美国加利福尼亚州发

世界之大,国家很多,而美国绝对是一个很特殊的存在。它是目前世界上唯一的超级大国,不管是在经济,还是在政治,又或者是在军事上,都有着不错的成就。 美国与别的国家不一样,它是一个移民国家,历史很短,仅仅...

第一印象的重要性(简述第一印象很重要好句子)

第一印象的重要性(简述第一印象很重要好句子)

我们第一次看到别人,在很短的时间内就会形成对这个人的第一印象。比如,这个人长得怎么样,是外向还是内向,是善良还是尖刻,是不是和我同一类人等等。 第一印象不管是对的还是不对的,都会对我们的人际交往产...

黑客帝国想讲什么(黑客帝国讲了啥)

黑客帝国想讲什么(黑客帝国讲了啥)

本文目录一览: 1、黑客帝国到底讲了什么 2、电影《黑客帝国》讲的是个什么故事? 3、《黑客帝国》主要讲的什么故事? 黑客帝国到底讲了什么 影片讲述了一名年轻的网络黑客尼奥发现看似正常的现实...

郑爽素颜照(郑爽素颜出镜)

郑爽素颜照(郑爽素颜出镜) 10月21日,郑爽官宣将参加《一千零一夜》晚会,官宣视频中郑爽素颜出镜,网友们的评论却两极分化严重。 粉丝们大赞郑爽素颜皮肤好到爆炸,白皙又细腻,即使没有化妆五...

微信赚钱的三大方式?如何行使微信挣钱?有哪些方式?

微信除了使我们产生纷繁芜杂信息和闲谈沟通交流的方便快捷外,也是很多人用以赚钱的常用工具,但是一般人都不易太领悟如何用微信来挣钱,原文中写給这种在意的人。 手机微信群众服务平台。 这个是目前比较认同的出...