JS中ajax的封装

今天复习了ajax封装,所谓ajax就是通过XMLHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用js来操作DOM而达到无刷新更新页面

function ajax(obj) {
            var method = obj.method || false,//发送方式
                timeout = (typeof obj.timeout === "number" ? obj.timeout : false),//过期时间
                url = obj.url,//地址
                success = obj.success,//成功函数
                error = obj.error,//失败函数
                data = obj.data//要发送的数据
            async = obj.async || false;//异步或同步

            var str = "";
            if (data) {
                for (var key in data) {
                    str += key + "=" + data[key] + "&";
                }
            }
            if (method.indexof("GET") != -1) {
                url += "?" + str;
            }

            var Xhr = new XMLHttpRequest();
            Xhr.open(method, url, async);
            Xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")//设置请求头
            if (timeout != false) {
                setTimeout(function () {
                    Xhr.abort();
                }, timeout);
            }
            Xhr.send(str);
            Xhr.onreadystatechange = function () {
                if (this.readyState !==4) {
                    return;
                    if (this.status > 200 && this.status < 400) {
                        success();//成功时调用
                    }else{
                        error();//失败时调用
                    }
                }
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值