Javascript .done()jquery不工作

Javascript .done()jquery不工作,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用下面的代码进行ajax调用 var getRequest = $.ajax({ type: 'GET', url: Url, async: false, dataType: "text", complete: function () { $('#loading').hide(); } }); 在收到以下数据后,请求正在完成,数据也将被撤回: getRequest.done(function (dataDb) { if

我使用下面的代码进行ajax调用

var getRequest = $.ajax({
    type: 'GET',
    url: Url,
    async: false,
    dataType: "text",
    complete: function () {
        $('#loading').hide();
    }
});
在收到以下数据后,请求正在完成,数据也将被撤回:

getRequest.done(function (dataDb) {
    if (dataDb) {
        alert('dataDb: ' + dataDb);

    }
});

getRequest.fail(function (jqXHR, textStatus, error) {
    alert('data error within getUsersRequest ' + textStatus + ' : ' + error);
});

我收到一个错误,
getRequest.done(函数(dataDb)
getRequest.fail(函数(jqXHR,textStatus,error)
不是函数。

这是因为您的
JQuery
版本太旧了

如果您不愿意升级最新版本的
JQuery
,可以使用
success

success: function(dataDb) {

    }

您可以尝试使用
.success

var getRequest = $.ajax({
                type : 'GET',
                url : Url,
                async: false,
                dataType: "text",
                complete: function(){
                    $('#loading').hide();
                }
            }).success(function(dataDb){   
                if(dataDb) {
                    alert('dataDb: '+ dataDb);

                } 
            });

success
仅当AJAX调用从后端成功时触发,即返回
HTTP 200
状态作为响应。如果任何错误触发,则在请求完成时触发并完成,无论成功与否

jqXHR
对象上的
jQuery 1.8
中(由
$.ajax
返回),成功被替换为完成,错误为失败,完成为始终

但是,您仍然可以使用当前语法初始化
AJAX请求

// set success action before making the request
$.ajax({
  url: '...',
  success: function(){
    alert('AJAX successful');
  }
});

// set success action just after starting the request
var jqxhr = $.ajax( "..." )
  .done(function() { alert("success"); });

Last:您需要使用
.success
而不是
。done

您使用的是哪个版本的jQuery?可能您使用的是旧版本。ajax用于异步操作。您的设置
async:false
无法满足此要求。设计不好。async:false保留用于编码原因。我使用jQuery 1.10.1,来自:从jQuery1.8开始,不推荐在jqXHR($.Deferred)中使用async:false;您必须使用success/error/complete回调选项,而不是jqXHR对象的相应方法,例如jqXHR.done()或不推荐的jqXHR.success()。您需要将
success
放在
$.ajax({..})中。