我正在尝试做的事情:1.最初基于一些输入向服务器发出ajax请求2.服务器返回由RQ(Python-rq)生成的作业ID。3.根据对URL发出的作业ID Ajax请求定期与Jobid一起构造,直到获得有效的响应
是)我有的:
$.ajax({
type: "POST",
url: "/start",
data:{crop: valueCrop, state: valueState, variablemeasure: valueVariable, unit:unitMeasure, from:yearFrom, to:yearTo},
success: function(results) {
console.log(results);
var jobId='';
jobId = results;
function ajax_request() {
$.ajax({
type: "GET",
url: "/results/" + jobId,
dataType: "json",
success:function(xhr_data) {
if (xhr_data == {"status":"pending","data":[]}){
console.log("Waiting for response");
setTimeout(function() { ajax_request(); }, 2000);
} else {
console.log(xhr_data);
}
},
error:function(error) {
console.log(error)
}
});
}
},
error: function(error) {
console.log(error)
}
})
这有可能吗?尽管rq表示作业已完成,但控制台上根本没有任何输出。我认为这不是进入if循环。当我访问“ / results / jobId” URL时,可以看到结果。请帮忙。
我在这段代码中看到了一些错误。首先,您已经定义了函数ajax_request()
。但是您没有打电话。您可以在其定义的末尾调用它。
其次,此代码有问题:
if (xhr_data == {"status":"pending","data":[]})
对象表示法创建了另一个绝对不等于的对象xhr_data
。
你可以做:
if (xhr_data.status === "pending")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句