gpt4 book ai didi

javascript - 通过 Ajax 或 Javascript 强制下载文件

转载 作者:行者123 更新时间:2023-11-30 10:01:55 25 4
gpt4 key购买 nike

所以我有一个列出文件的表,每个文件的 URL 都存储为按钮上的数据属性。单击按钮时,我想触发一个 Javascript/Ajax 调用,该调用将在 URL 下载文件。

现在有一些注意事项,

  1. 文件需要通过下载对话框下载或需要只需按照您的预期添加到浏览器下载即可。
  2. 请求需要能够获取 header ,因为这是一个跨域请求。
  3. 这需要在主要浏览器(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 请求(不强制下载)并在 anchor 标记上使用 Download 属性(不接受 header )。

谢谢

最佳答案

而不是使用不跨浏览器兼容的 anchor 标记(显然,我没有意识到微软在获得 HTML5 规范方面如此缓慢。不过并不意外)

我们可以利用 iframe 来避免重定向并实现此效果,同时保持跨浏览器的兼容性。

<iframe width="1" height="1" frameborder="0" src="[File location]"></iframe>

只要文件不是 .html 或某种可以通过浏览器显示的文件(.htm、.html、.xhtml、.aspx 等),它就应该下载该文件。

关于javascript - 通过 Ajax 或 Javascript 强制下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31140791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com