我有一种情况,我动态创建一个表单并提交到我的服务器端控制器,这样我就可以查询我的数据库并返回一个 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:complete” 只是我没有运气的尝试。我还尝试将 hideSpinner 放在 .submit() 之后。但这只是立即隐藏微调器,因为 .submit() 似乎是异步的。