3

我有一个页面可以根据表单中的某些配置下载文件。

当我发送表单时,文件下载正常,但如果我更改表单并再次发送,则没有任何反应。

示例表格:

<form action="/download" method="get" target="_blank">
  <input type="checkbox" name="some_option" value="1" />
  <input type="submit" value="Download" />
</form>

表格仅在第一次发送。

我考虑过使用 JS 发送表单,但我不认为文件下载那样工作。

有什么建议吗?

编辑:按target="_blank"建议添加。

更新:

添加了这个:

$('form').submit(function() {
  this.action = addRandomParam(this.action);
  console.log(this.action);
});

submit每次点击“下载”按钮时都会触发该事件,但我仍然只在第一次下载文件。

4

3 回答 3

2

假设你的下载地址是download,那你需要加一个斜杠,否则下一次提交会带你到/download/download那个明显不存在的地方。如果这是正确的,您可以尝试将您的操作设置为action="/download"

于 2013-03-12T15:11:42.180 回答
1

可能是浏览器以某种方式缓存了您提交的网址吗?您可以尝试在点击提交按钮后向下载 URL 添加随机参数吗?这样下次你点击提交时,浏览器会认为它是一个不同的 url?

于 2013-03-12T15:46:03.447 回答
0

好的,问题是一些Javascript在做这样的事情(代码只是说明性的:P)......

$('form').submit(function() {
  if (alreadySent()) {
    this.preventDefault();
  }
  setAsSent();
});

这是为了防止正常表单被多次发送。

谢谢大家的回答。

于 2013-03-12T21:58:45.500 回答