Javascript .done()jquery不工作
我使用下面的代码进行ajax调用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
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({..})中。