博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
摆脱jquery,用自己的JS库实现ajax功能
阅读量:5134 次
发布时间:2019-06-13

本文共 1600 字,大约阅读时间需要 5 分钟。

可以将下面的代码保存在一个文件里如:myAjax.js,以后在项目中如果觉得jquery那一套很重,就完全可以使用自己的ajax库,不用担心性能和兼容性!

/**

 * 创建ajax请求对象
 * @returns XMLHTTPREQUEST
 */
function createAjaxObj(){
    var req ;
    if(window.XMLHttpRequest){
        req=new XMLHttpRequest();
    }else{
        req=new ActiveXObject("Msxml2.XMLHTTP");
    }
    return req;
}
/**
 * 发送 ajax 请求
 * @param method  get/post
 * @param url     请求路径
 * @param params  参数列表  格式a=?&&b=?
 * @param async   true 异步 false 同步
 * @param handle200  处理成功的函数
 * @param loading    处理加载中的函数
 * @param handle404  处理找不到地址的函数
 * @param handle500  处理服务器内部出错的函数
 */
function sendAjaxReq(method,url,params,async,handle200,loading,handle404,handle500){
    var req = createAjaxObj();
    req.onreadystatechange = function(){
        if(4==req.readyState){
            if(200==req.status){
                if(handle200){
                    handle200(req.responseText);
                }
            }else if(404==req.status){
                if(handle404){
                    handle404();
                }
            }else if(500==req.status){
                if(handle500){
                    handle500();
                }
            }
        }else{
            if(loading){
                loading();
            }
        }
    };
    if("get"==method.toLowerCase()){
        req.open(method,url+(params==null?"":"?"+params),async);
        req.send(null);
    }else if("post" ==method.toLowerCase()){
        req.open(method,url,async);
        req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        req.send(params);
    }
}
/** For Example
// 使用自己的ajax 类库发送 请求    
        sendAjaxReq("post",
            "${base}/brandAjax/checkBrandId.do",
            "brandId="+brandId,true,
            function(req){
                eval(" var data="+ req.responseText);
                if(data.message==true){
                        alert("品牌ID:"+brandId+"已存在,不可重复添加!");
                        $("#hidBrandId")[0].innerHTML=""; 
                        $("#brandName").val("");                                
                    }else{
                        submitFlag=1;
                        $("#selBrand")[0].style.display = "none";                          
                    }
            });
*/

转载于:https://www.cnblogs.com/xifenglou/p/4403516.html

你可能感兴趣的文章
mysql有哪几种索引
查看>>
字符、字符串和文本的处理之String类型
查看>>
数据结构-环形队列 C和C++的实现
查看>>
如何实现SSH断开后 进程仍然在后台运行
查看>>
3款强大的BootStrap的可视化制作工具推荐
查看>>
Sql Server临时表获取链接数据库查询结果
查看>>
对象流--对象的序列化
查看>>
NXP S32K RTC模块手册中文
查看>>
POJ 1329 三角外接圆
查看>>
7个最好的免费杀毒软件下载
查看>>
PHP图像处理:3D图纸、缩放、回转、剪下、水印(三)
查看>>
C++ 中dynamic_cast<>的用法
查看>>
让你提前认识软件开发(28):数据库存储过程中的重要表信息的保存及相关建议...
查看>>
ArcGIS API For JS 之Symbol
查看>>
Java——Set 集合
查看>>
Your Progress As A Programmer Is All Up To You
查看>>
Laravel 调试利器 Laravel Debugbar 扩展包安装及使用教程
查看>>
成功在MP4封装的H264视频中提取能播放的裸流
查看>>
python tkinter-单选、多选
查看>>
2014年03月 面试总结
查看>>