[英]Force a File Download by either Ajax or Javascript
所以我有一个列出文件的表,每个文件的URL作为数据属性存储在按钮上。 单击一个按钮后,我想触发一个Javascript / Ajax调用,该调用会将文件下载到URL。
现在有一些警告,
到目前为止,我已经尝试使用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属性。
谢谢
而不是使用不兼容跨浏览器的锚标记(显然,我没有意识到微软在获得HTML5规范方面是如此缓慢。。
我们可以利用iframe避免重定向,并在保持跨浏览器兼容性的同时达到这种效果。
<iframe width="1" height="1" frameborder="0" src="[File location]"></iframe>
只要该文件不是.html或可以通过浏览器显示的某种文件(.htm,.html,.xhtml,.aspx等),它都应该下载该文件。
您必须先捕获URL,然后再捕获:
document.location = 'data:Application/octet-stream,' + encodeURIComponent("http://somedomain.com/somefile.some");
要么
window.open("http://somedomain.com/somefile.some");
您不需要使用这种方法的标题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.