jQuery json Ajax调用不再工作后第一次(包括表单提交,setTimeout)
jQuery json Ajax call no longer works after first time (including form submit, setTimeout)
我有一个长时间运行的提交,所以我实现了一个带有进度条的模态对话框来显示进度。第一次我提交表单一切正常。进度条正在更新(我在成功处理程序中使用setTimeout每500毫秒检查一次进度),并显示在模态对话框中。它下面的div的内容也被更新,当一切完成后,表单提交。这就是棘手的地方…
在我第一次提交表单之后,除了重置我的IIS Express之外,不可能让进度条再次更新。模态对话框显示,我可以看到第一个json请求被触发,但它只是等待和中止一旦提交通过。我试着给$添加一个超时。ajax调用,添加标题没有json调用缓存的结果,我尝试清除超时,但都无济于事。
我认为这个问题与setTimeout被表单提交终止有关(以及表单提交后的重定向)。我怎么也找不到真正的罪犯。
function DoSomething() {
$.ajax(
{
type: "POST",
contentType: "application/json;charset=utf-8",
url: "/Controller/Action",
dataType: "json",
timeout: 400,
success: function (data) {
if (data) {
if ($('progress').prop('max') !== data.total) {
$('progress').attr({ max: data.total });
}
$('progress').attr({ value: data.current });
$('#progressText').html(data.current + ' / ' + data.total);
}
setTimeout(DoSomething, 500);
}
});
}
在我使用这个的视图中。
$("form").submit(function () {
$('#thisIsMyModal').modal({
backdrop: 'static',
keyboard: false
});
DoSomething();
});
在ajax请求中添加一个cache: false
。在将其设置为false之前,我在MVC应用程序中遇到了同样的问题。虽然你找不到很好的文档,但这是我前一阵在一个不知名的网站上挖到的。
编辑:我更正,http://api.jquery.com/jQuery.ajax/
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- 从函数中选择要触发表单提交的正确元素
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- jQuery json Ajax调用不再工作后第一次(包括表单提交,setTimeout)
- 监听所有表单提交事件,包括动态添加的表单