封装的一个Ajax小框架

访客3年前黑客工具766

在履历了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米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

法律对黑客的惩罚(法律对黑客的惩罚有哪些)

法律对黑客的惩罚(法律对黑客的惩罚有哪些)

本文目录一览: 1、黑客会被判刑吗 2、电脑“黑客”需负什么法律责任? 3、黑客行为应当承担怎样的法律责任 4、一般黑客怎么判刑的 5、中国法律如何处罚黑客 6、黑客修改了我们网站...

弢怎么读?

弢怎么读?

弢怎么读?弢是什么意思?弢的词语出处也是那里?很多人在生活、学习中遇到“弢”这个词,大家都不知道怎么读这个生僻字。你想知道这些有趣的生僻字怎么读吗?豪友网专门精心整理了生僻字怎么读相关的内容,为你释疑...

女神异闻录》全系列突遭Metacritic用户恶评,原因不明_腾讯

《真女神转生》和《女神异闻录》系列游戏的网络评分在过去几天里突然出现骤降,而且没有什么明显的原因和规律。综合评分媒体Metacritic上的《真女神转生》和《女神异闻录》全线作品都发生了评分暴跌现象。...

黑客帝国矩阵重启为什么评分低(黑客帝国矩阵重启)

黑客帝国矩阵重启为什么评分低(黑客帝国矩阵重启)

本文导读目录: 1、关于黑客帝国系列电影的一些疑问 2、看完《黑客帝国 矩阵化》动漫版,但是结局还是不明白,最后简介所说的无法控制是什么意思 3、《黑客帝国:矩阵重生》将上映,时隔 20 年你...

剑与远征命运困境怎么过 新时光之巅命运困境通关路线流程攻略

剑与远征命运困境怎么过 新时光之巅命运困境通关路线流程攻略

剑与远征游戏最近更新后,上线了全新的副本玩法,就是新时光之巅命运困境了,这个副本奖励很不错,大家都很喜欢,很多玩家迫不及待去体验,当然了,这个副本是有一定的难度的,那么,这个副本应该怎么打,有什么路线...

黑客软件下载

推荐你个免费学黑客的好论坛梦想黑客联盟论坛1、梦想黑客联盟的版主比较负责2、梦想黑客联盟论坛上还有很多的教程和一些会员实践的心德都是很不错。 华夏黑客联盟也有软件也有教程,适合刚入门的 百度日月神教2...