Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery json Ajax调用在第一次调用后不再工作(包括表单提交、setTimeout)_Javascript_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Javascript jQuery json Ajax调用在第一次调用后不再工作(包括表单提交、setTimeout)

Javascript jQuery json Ajax调用在第一次调用后不再工作(包括表单提交、setTimeout),javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我有一个相当长的提交运行时间,所以我实现了一个带有进度条的模式对话框来显示进度。第一次提交表单时,一切正常。进度条正在更新(我在成功处理程序中使用setTimeout每500毫秒检查一次进度),并显示在模式对话框中。下面div的内容也会更新,完成所有操作后,表单会提交。这就是它变得棘手的地方 在我第一次提交表单后,除了重置我的IIS Express之外,无法再次更新进度条。模式对话框是showm,我可以看到第一个json请求被触发,但它只是等待并在提交完成后立即中止。我尝试向$.ajax调用添加

我有一个相当长的提交运行时间,所以我实现了一个带有进度条的模式对话框来显示进度。第一次提交表单时,一切正常。进度条正在更新(我在成功处理程序中使用setTimeout每500毫秒检查一次进度),并显示在模式对话框中。下面div的内容也会更新,完成所有操作后,表单会提交。这就是它变得棘手的地方

在我第一次提交表单后,除了重置我的IIS Express之外,无法再次更新进度条。模式对话框是showm,我可以看到第一个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请求中添加一个
缓存:false
。我在MVC应用程序中遇到了同样的问题,直到将其设置为false。不过,你不会找到关于它的好文档,这是我不久前在一个不知名的网站上找到的


编辑:我已更正,

您是否缓存了控制器的响应?您还可以发布每个调用Ajax调用的响应吗?我在控制器操作中添加了持续时间为0和NoStore的OutputCache属性。我还添加了一个缓存控制头no cache to now avail.以下是一些响应:{“current”:0,“total”:951},{“current”:49,“total”:951},{“current”:109,“total”:951}响应头:键值响应HTTP/1.1200 OK缓存控制私有内容类型应用程序/json;charset=utf-8服务器Microsoft IIS/8.0 X-AspNetMvc-Version 4.0 X-AspNet-Version 4.0.30319 X-SourceFiles=?utf-8?B?rdpcrgv2zwvcg1lbnrcmlja3zkym9zy2hcum9lzmvsxfjvzwzlbc5xwiutxzjjjjjjjlagvlxhzrtznzaw9uc0nsyxnzawzpzwq=?=X-Powered-By-By-By-ASP.NET日期2013年6月6日18:34:20 GMT内容长度26