【问题标题】:TypeError: $.ajax(...).done(...).fail(...).complete is not a functionTypeError: $.ajax(...).done(...).fail(...).complete 不是函数
【发布时间】:2017-09-10 06:10:49
【问题描述】:

我突然开始收到以下信息:

TypeError: $.ajax(...).done(...).fail(...).complete 不是函数

我的代码:

this.sendRequest = function (type, extension, data, successCallback, successMsg, failMsg, failCallback) {

            var self = this;
            var options = {
                url: self.baseUrl + self.apiEndpoint + extension,
                type: type,
                dataType: 'json',
                xhrFields: {
                    withCredentials: true
                }
            };
            if (data != null) {
                options.data = data;
            }
            return $.ajax(options)
                .done(function (response) {
                    // do stuff
                })
                .fail(function (response) {
                    // do stuff
                }).complete(function (response) {
                    // do stuff
                });
        };

为什么会这样?我确实更新了 jQuery——其中一些语法是否失效了?

【问题讨论】:

  • 是的; complete 自 jQuery 3.0 起已弃用
  • @Hamms 我应该改用什么?
  • always; docs也有这个信息

标签: javascript jquery ajax jquery-3


【解决方案1】:

.complete 已弃用....使用.always

jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });(在 jQuery 1.6 中添加)

完整回调选项的替代构造,.always() 方法替换了已弃用的 .complete() 方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 2020-05-01
    • 1970-01-01
    • 2016-06-07
    • 2016-10-25
    相关资源
    最近更新 更多