Ajax 在 ajax 内部调用
Ajax call inside ajax
我的网页上有一个按钮。如果用户单击它,任务将启动并返回 ID。我想使用此 ID 在另一个 ajax 调用中检查任务的进度,让用户知道任务是否已完成。
我已经尝试过这个,但我认为这不是正确的方法:
<script type="text/javascript">
$(document).ready(function() {
$('#get-user-transactions').click(function() {
$( "#user-transactions" ).after( "<p>Loading data</p>" );
$.ajax({
url: "/start-task/",
dataType: "json",
success: function(data){
if(data) {
var stateCheck = setInterval(
$.ajax({
url: "/check-taskstate/"+data.task_id,
dataType: "json",
success: function(data){
if (data.updated == 'true') {
clearInterval(stateCheck);
window.location.reload();
}
}
})//ajax
, 1000); //stateCheck
}
}
})//ajax
});
});
</script>
编辑
我更新了我的代码,所以第一个 url 也给出了一个 json 响应。但是如果我尝试我的代码,我会收到此错误:
Uncaught SyntaxError: Unexpected identifier
由于setInterval()
接受函数或代码,但您传递的是 jqXHR 对象,因此您一定因此而收到错误。
func 是您希望重复调用的函数
替代语法中的代码是您希望重复执行的代码字符串(不建议使用此语法,原因与使用 eval() 相同)
用
var stateCheck = setInterval(function(){
$.ajax({
url: "/check-taskstate/"+data.task_id,
dataType: "json",
success: function(data){
if (data.updated == 'true') {
clearInterval(stateCheck);
window.location.reload();
}
}
});
}, 1000); //stateCheck
相关文章:
- bluebird promise catch() 没有使用 Promise.CancelError 调用内部函数
- ES2015:从覆盖的类调用内部方法
- 未调用内部JS Angular Controller
- JavaScript - 从事件处理程序调用内部方法
- 在 JavaScript 中调用内部函数
- $watch 不会在 Angularjs 中调用内部选项卡
- 如何调用内部 JavaScript 类方法
- 为什么要调用内部函数而不是方法
- 正在调用内部函数Javascript
- 在我的javascript中调用内部函数的问题'类'
- 如何用对象表示法调用内部javascript函数
- Express.js:调用内部服务
- 从java代码调用内部javascript函数
- Javascript从外部调用内部函数
- 如何从Rails视图调用内部API(用于ReactJS预呈现程序)
- 调用内部函数
- 从脚本外部调用内部铯函数
- 调用内部对象函数javascript
- 调用内部异步回调后迭代for循环
- $scope不调用内部函数