我有一种情况,我动态创建一个表单并提交给我的服务器端控制器,这样我就可以查询我的数据库并返回一个csv文件。我需要能够设置一个叠加层,这样用户就无法敲击提交按钮并发送10个请求来恢复文件。
因此我不能使用ajax,因为ajax不允许我发回文件供浏览器自动检测并要求用户下载。
showSpinner();
var $form = $("<form/>")
.addClass("hidden")
.attr("accept", "application/json")
.attr("action", "/myPath")
.attr("method", "POST")
.appendTo("body");
$form.bind('ajax:complete', function() {
hideSpinner();
});
$form.submit();
“ajax:完成”只是我没有运气的尝试。我也尝试将hideSpinner放在.submit()之后。但是,因为.submit()似乎是异步的,所以只是立即隐藏了微调器。