我使用以下代码进行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(function(dataDb)
或getRequest.fail(function(jqXHR, textStatus, error)
不是函数的错误。
答案 0 :(得分:0)
这是因为您的JQuery
版本太旧了。
如果您不愿意升级success
的最新版本,则可以使用JQuery
。
success: function(dataDb) {
}
答案 1 :(得分:0)
success
仅在AJAX呼叫从后端成功时触发,即它返回HTTP 200
状态作为响应。如果任何错误在失败时触发,并在请求完成时完成,无论成功与否。
在jQuery 1.8
对象的jqXHR
上(由$.ajax
返回)成功将被替换为完成,错误失败并且始终完成。
但是,您仍然可以使用当前语法初始化AJAX request
。所以这些做类似的事情:
// 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"); });
上次:您需要使用.success
而不是.done
答案 2 :(得分:-1)
您可以尝试使用.success
。
var getRequest = $.ajax({
type : 'GET',
url : Url,
async: false,
dataType: "text",
complete: function(){
$('#loading').hide();
}
}).success(function(dataDb){
if(dataDb) {
alert('dataDb: '+ dataDb);
}
});