js 对ajax进行封装处理

本文深入探讨了自定义Ajax函数的设计与实现,详细解析了如何通过设置不同的参数选项来定制Ajax请求,包括请求方法、URL、数据类型、异步处理等。此外,还介绍了如何使用Deferred对象处理请求的成功、失败和完成状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function GetAjax() {
        this.ajax = function (opts) {
            var _this = this;
            this.method = opts.method || "post";
            this.url = opts.url;
            this.data = opts.data || {};
            this.cache = opts.cache || false;
            if (typeof opts.async === "undefined" || opts.assign === null || opts.assign === "") {
                this.async = true;
            } else {
                this.async = opts.async;
            }

            this.dataType = opts.dataType || "json";
            this.beforeSend = opts.beforeSend || function () {
                return true;
            };
            this.complete = opts.complete || function () {
                return true;
            };
            this.success = opts.success || function () {
                return true;
            };
            this.error = opts.error || function () {
                return true;
            };

            var wait = function () {
                var d = $.Deferred();
                $.ajax({
                    method: _this.method,
                    url: _this.url,
                    data: _this.data,
                    dataType: _this.dataType,
                    cache: _this.cache,
                    async: _this.async,
                    beforeSend: function (XHR) {
                        _this.layerload = layer.load(1);
                        _this.beforeSend(XHR);
                    },
                    success: function (res) {
                        _this.success(res)
                    },
                    error: function (err) {
                        _this.error(err)
                    },
                    complete: function (XHR, TS) {
                        layer.close(_this.layerload);
                        _this.complete(XHR);
                    }
                }).done(function (res) {
                    d.resolve(res);
                }).fail(function (err) {
                    console.error(err);
                    d.reject(err);
                });
                return d.promise();
            };
            return $.when(wait());

        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值