gpt4 book ai didi

javascript - 延迟的 jQuery AJAX 请求不运行 done() 回调函数

转载 作者:行者123 更新时间:2023-11-28 07:22:43 26 4
gpt4 key购买 nike

我使用 jQuery Deferred 对象和 AJAX 请求设置了一个简单的演示,以模拟我的应用程序的执行方式。

我的问题是,自从我从旧的非延迟方法切换以来,我无法获得成功回调。

仅调用 fail() 回调。有人可以帮助我获得成功的回调吗?我不明白哪里出了问题?感谢任何帮助

我的演示在这里 http://jsfiddle.net/jasondavis/y645yp4g/4/

我以前的 AJAX 调用是这样的......

var ajax = $.ajax({
type: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: '/gettask',
data: {
action: 'load-task-record',
task_id: taskId
},
success: function(data) {
// my success functionality here
}
});

使用延迟对象的新 AJAX 调用...

// Call function that execute AJAX request and returns it
var ajaxRequest = ajaxLoadTaskData();

ajaxRequest.done(function(response) {

if( response.success ) {
alert('AJAX request success');
}else{
// output the contents of response.errors
}

}).fail(function(response) {
// AJAX request failed
console.log('response', response);
alert('AJAX request failed');

}).always(function(response) {

});


// Run AJAX request and return Promise()
function ajaxLoadTaskData() {
return $.ajax({
type: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: '/gettask',
data: {
action: 'load-task-record',
task_id: '1',
},
});
}

对/gettask 的 AJAX 请求的模拟 AJAX 响应

// Mock AJAX response for AJAX request to /gettask
$.mockjax({
url: '/gettask',
contentType: 'text/json',
responseTime: 100,
response: function(settings) {
console.log('mockJax GET to /gettask :');
//console.log(settings);
if (settings.data.value == 'err') {
this.status = 500;
this.responseText = 'Validation error!';
} else {
var taskrecord = { 'name1': 'bar' };
this.responseText = taskrecord;
}
},
});

最佳答案

/gettask 在该 jsFiddle 环境中不存在。使用 console.log(settings) 查看响应的全部内容。您将看到状态为 404。

关于javascript - 延迟的 jQuery AJAX 请求不运行 done() 回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30132813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com