Internet Explorer具有安全设置,允许启用/禁用文件下载。我们的应用程序中有一个按钮,用window.open
(“fileurl”)打开文件(例如.xls)。是否有可能在javascript中检测到下载被阻止(例如显示一些解释)?或者更复杂的是以某种方式可以从请求标头中检测到它?
修改
我按照建议尝试了ajax来测试下载没有成功。我认为保存或打开文件被阻止而不是实际下载。
var xhr = new XMLHttpRequest();
xhr.open("GET", docurl, false);
xhr.send(null);
var data = new VBArray(xhr.responseBody).toArray();//IE9 only
成功并返回相同长度的数组,无论是否禁用下载
Getting and Sending Binary Files with XMLHttpRequest
how do I access XHR responseBody (for binary data) from Javascript in IE?
编辑2:
我的第二次尝试:
var wnd = window.open()
wnd.load=tst;
wnd.location.href= docurl
我尝试在加载时使用evalueat窗口(tst),但是我没有发现与禁止下载的区别。
答案 0 :(得分:3)
有一个想法:有一个ajax请求下载一个类似于被阻止的“测试文件”,具有相同的mime类型和尽可能类型的真实空文件(但很小,可能是2KB)。然后,如果这样的下载失败,...你也可以检查它是如何失败的(默默地,带有错误消息,......)..这将为您提供有关如何解决该问题的更多信息。
答案 1 :(得分:0)
现在有大约一个月的答案,所以我得出的结论是没有解决方案。