通过iframe下载文件时出现Chrome错误

Tau*_*ren 7 javascript iframe jquery

我正在向服务器提交JSON数据.服务器生成PDF文件并使用该PDF文件的URL进行响应.然后我再向服务器发出下载PDF文件的请求.要进行下载,我创建一个隐藏的iframe并将源设置为PDF网址.请注意,我希望用户的浏览器保持在同一页面并在后台下载.关于我正在做什么以及我采用的解决方案的更多细节可以在这个SO问题中找到.

每当我在Chrome中使用这种技术时,一切正常.但是看一下chrome开发者控制台,我看到了错误信息Failed to load resource.有没有办法以不同的方式做到这一点,以便我不会得到这些错误?

在jsfiddle上可以看到一个非常简单且有效的问题.只需单击"下载PDF"按钮,然后查看Chrome控制台即可.

该页面上的代码如下所示:

$(document).ready( function() {
    var downloadFile = function(url){
        var iframe = $("iframe#download");
        if (!iframe.length) {
            iframe = $("<iframe id='download' style='display:none;'/>");
            $("body").append(iframe);
        }
        iframe.attr("src", url);
    };

    $("button").click(function() {    
        downloadFile("http://www.education.gov.yk.ca/pdf/pdf-test.pdf");
    });
});
Run Code Online (Sandbox Code Playgroud)

R H*_*ill 4

其他受访者建议更改内容类型标头,这应该同样有效,但有一个特定的响应标头用于指示浏览器如何处理文件。

以下内容应强制下载 pdf 而不是在浏览器中显示:

“内容处置:附件;文件名=[您的文件名]”