javascript - Ajax 检测提交何时完成

标签 javascript jquery ajax node.js

我试图弄清楚我的 Node 服务器何时响应我的 ajax 提交。目前,该表单将一些字符串发送到服务器,在服务器中找到文件并将其发送回客户端。我希望能够检测客户端何时收到文件,以便我可以更改网页。我尝试过使用 Ajax Form,但我认为它不支持接收文件,只支持 XML 或 JSON 响应等。当我尝试时, Node 服务器会做正确的事情并发送文件,但客户端永远不会收到它。这是我当前有效的代码,客户端收到文件,但我希望在他们收到文件后无法更改网页,但事实并非如此。

  $(document).on('click', 'a', function () {
     var form = $(this).parents().find("#download-form").submit();
     $(this).addClass("disabled");
     $(this).html("<i class='fa fa-refresh fa-spin'></i>");
  });

最佳答案

您可以将表单的 target 属性设置为 iframe,并向 iframe 的 load 事件添加事件监听器。

示例:(也在 jsfiddle 中)

<script>
     document.getElementById("resultFrame").addEventListener("load", function(){
        // do something once iframe loaded
        document.getElementById("resultCount").innerHTML = parseInt(document.getElementById("resultCount").textContent)+1;
    });
</script>

<form method="GET" action="https://fiddle.jshell.net/img/logo.png" target="resultFrame">
  <input type="submit" />
</form>

<p id="resultCount">0</p>

<iframe name="resultFrame" id="resultFrame"></iframe>

关于javascript - Ajax 检测提交何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36664274/

相关文章:

jquery - Rails 4 - 通过 Ajax 进行错误处理 - 错误未触发

php - 使用 $.post() 方法将图像发送到其他页面

javascript - 如何缩小/混淆全局函数名称?

javascript - 如何根据 jquery 中的值打开子项的子项

javascript - 无法在回调 AngularJS 中访问 JSON 响应

javascript - 是否可以使用表单 POST 提交时使用的设备类型?

jquery - 如何使html表格第一行 'absolute'

javascript根据选择选项值条件向id添加值

具有多个类的 jQuery 过滤器如何在不删除两个类的结果的情况下使用 "delete"一个过滤器?

php - 连续Ajax GET时jscrollPane消失