【发布时间】:2015-06-30 14:15:39
【问题描述】:
所以我有一个列出文件的表格,每个文件的 URL 都存储为按钮上的数据属性。单击按钮时,我想触发 Javascript/Ajax 调用,该调用将在 URL 处下载文件。
现在有一些警告,
- 文件需要通过下载对话框下载或需要 只需按照您的预期添加到浏览器下载中即可。
- 该请求需要能够采用标头,因为这是一个跨域请求。
- 这需要在主要浏览器(IE、Chrome、Firefox、Safari)上运行
到目前为止,我已经尝试过使用 XMLHttpRequest:
e.preventDefault();
var csrftoken = getCookie('csrftoken');
var req = new XMLHttpRequest;
req.open("POST",$(this).data("url"));
req.setRequestHeader("MY HEADER", "HEADER VALUE;");
req.withCredentials = true;
req.send();
我也尝试过 Ajax GET 请求(不强制下载)并在锚标记上使用 Download 属性(不接受标头)。
谢谢
【问题讨论】:
-
你有什么理由不能简单地使用
<a href="..." download>? -
AJAX 的意义为 0。就像大家建议的那样,只需使用普通的
<a href..。 -
@light: caveat #3, I suppose.
-
正如我在问题中所说,据我所知,那里的链接不允许您包含请求标头。因为这是一个跨域请求
-
这个问题仍然含糊不清,解释一下你想要做什么,而不是“如何”你认为你应该这样做。请
标签: javascript jquery html ajax