使用Chrome 12.0.742.112,如果我重定向以下头:

HTTP/1.1 302 Found 
Location: http://0.0.0.0:3000/files/download.zip
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Ua-Compatible: IE=Edge
X-Runtime: 0.157964
Content-Length: 0
Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
Date: Tue, 05 Jul 2011 18:42:25 GMT
Connection: Keep-Alive

如果遵循,将返回以下头文件:

HTTP/1.1 200 OK 
Last-Modified: Tue, 05 Jul 2011 18:18:30 GMT
Content-Type: application/zip
Content-Length: 150014
Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
Date: Tue, 05 Jul 2011 18:44:47 GMT
Connection: Keep-Alive

Chrome不会重定向,也不会改变前一页,它只会在控制台中报告以下警告:

资源解释为文档,但使用MIME类型application/zip传输。

这个过程在Firefox中正常工作,如果我打开一个新选项卡并直接访问http://0.0.0.0:3000/files/download.zip,在Chrome中也可以正常工作。是我做错了什么,还是这是Chrome的bug/怪癖?


当前回答

我今天在Chrome 30.0.1599.66版本的node.js / express.js应用程序中遇到了同样的问题。

标题是正确的,表达设置他们正确地自动,它在其他浏览器中工作,如所示,把html 5的“下载”属性不解决,什么解决它是进入chrome高级设置,并勾选框“询问在下载前保存每个文件的位置”。

在此之后,没有“资源解释为文档....”的错误报告,因为在这个问题的标题中,所以它似乎是我们的服务器代码是正确的,这是Chrome,在控制台错误地报告错误时,它被设置为自动保存文件到一个位置。

其他回答

这个问题

我也有类似的问题。 在js中获得消息

资源解释为文档,但以MIME类型text/csv传输

但我也在chrome控制台收到消息

混合内容:“https://my-site/”网站已加载 通过安全连接,但文件在 “https://my-site/Download?id = 99 a50c7b 通过不安全连接重定向。这个文件应该是 通过HTTPS服务。此下载已被阻止

这里说你需要使用一个安全的连接(但scheme在消息中已经是https了,奇怪…)

问题是href文件下载构建在服务器端。这个href在我的例子中使用了http。

解决方案

所以我在构建href文件下载时将scheme更改为https。

我在提供PDF文件(MIME类型应用程序/ PDF)时遇到了这个问题,并通过设置Content-Disposition头来解决它,例如:

Content-Disposition: attachment; filename=foo.pdf

希望这能有所帮助。

您可以在<a>标记中指定HTML5下载属性。

<a href="http://example.com/archive.zip" download>Export</a>

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download

我得到这个错误,因为我正在从我的文件系统服务。一旦我开始与一个http服务器chrome可以找出它。

Chrome 61版本再次出现此问题。但它似乎是固定的Chrome 62。

我有一个重写规则如下

RewriteRule ^/ShowGuide/?$ https://<website>/help.pdf [L,NC,R,QSA]

在Chrome 61中,PDF不能打开,在控制台显示消息

"Resource interpreted as Document but transferred with MIME type application/pdf: "

我们尝试在重写规则中添加mime类型,但它没有帮助。

RewriteRule ^/ShowGuide/?$ https://<website>/help.pdf [L,NC,R,QSA, t:application/pdf]

我已经把我的Chrome浏览器更新到最新的62版本,它又开始显示PDF了。但是消息仍然在控制台中。

在所有其他浏览器中,它都可以正常工作。