javascript - 检测同步 POST 请求的开始和停止

标签 javascript jquery

我有一个简单的 HTML 表单,它向第二个 PHP 文件发送一个简单的 POST 请求:

<form method="POST" action="parse.php">

parse.php 生成一个要下载的文件并将其与 header 一起发送到输出缓冲区

header("Cache-Control: private");
header("Content-Type: application/stream");
header("Content-Disposition: attachment; filename=test.html");

我可以在不使用异步请求的情况下从表单页面检测已完成/已开始的下载吗?当然,我可以通过 onSubmit 知道表单何时提交,但是下载开始或完成时是否会触发 jQuery 事件?

最佳答案

这取决于您使用哪种 jQuery 方法。

  • jQuery.post() 提供了一个名为“success”的方法,当 post 请求成功完成时会调用该方法。
  • jQuery.ajax() 提供了与上面相同的称为“成功”的方法以及称为“完成”的方法。无论成功与否,都会调用完整的方法。

更多详细信息和使用示例可以在链接的 jQuery 文档中找到。

我刚刚注意到上面提到的两种方法将在 jQuery 1.8 之后被弃用,你最好使用 done() 而不是提到的其他方法。请参阅上面链接的文档,了解有关如何使用新旧方法来实现您的目标的完整详细信息。

示例 1(已弃用):

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(data){
      // Do something with your data here
  },
  dataType: dataType
});

示例 2:

$.ajax({
  url: "http://example.com/url.php",
  type: 'POST',
  data: data
}).done(function( data ) {
    if ( console && console.log ) {
      console.log( "Sample of data:", data.slice( 0, 100 ) );
    }
});

关于javascript - 检测同步 POST 请求的开始和停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24506919/

相关文章:

javascript - 将div标签变成输入框

jquery - 滚动时在 Web 应用程序上触发悬停状态

jquery - 通过 Ajax 调用使用 http 基本身份验证

javascript - 如何使用 GitHub API 使用已登录用户在 GitHub 上发布问题 stub ,无需身份验证 key ?

javascript - Soundcloud SDK - 从 url 加载轨道

javascript - 是否可以 "hide"图像后面的视频?

javascript - BxSlider 轮播——一一变化

javascript - 如何循环或枚举 JavaScript 对象?

javascript - fancybox 指令不对图像进行分组

javascript - 动态生成的输入框调整大小并刷新位置和大小