我正在制作一个网站。在一个地方有一个执行Ajax回调的按钮,然后尝试通过window.open()
下载文件。预期的行为是新窗口短暂闪烁然后出现文件下载。这在IE9上工作正常,但IE8似乎有问题,即使禁用了弹出窗口阻止程序。
经过进一步的实验,我发现了另一种奇特的行为。如果我手动将下载的URL输入到新打开的选项卡的地址栏中,我会收到一条错误消息。关于无法下载的一般信息。如果我现在尝试刷新页面(或只是在地址栏中点击ENTER,从而重复相同的请求),下载进行得很顺利。
我预计它可能与content-disposition
或cache-control
标题有关,但删除这些标题无济于事。也没有将URL添加到“可信站点”区域。
我打算尝试用window.location
重新制作它,因为我不喜欢弹出窗口(不是我做的),但我对这种行为感到困惑。是什么原因造成的?
答案 0 :(得分:0)
我遇到了类似的问题。事实证明,当您使用AJAX获取文件时,IE无法打开文件。我使用的解决方案是不使用ajax。相反,我使用了一个小jQuery和一个iframe
:
jquery - on click (dont need ajax/get)
var dynamicUrl = 'SomeFileService.aspx?someQueryParam=' + input;
$('#iframePopup').attr('src', dynamicUrl);
window.frames["#iframePopup"].location.reload();
HTML
<iframe id="iframePopup" style="visibility:hidden;height:0px;width:0px;"></iframe>