资源被解释为文档,但使用 MIME 类型应用程序/zip 进行传输

2022-08-30 01:08:05

使用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类型应用程序/zip传输。

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


答案 1

您可以在<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


答案 2

在请求标头中,您已发送,这意味着您希望将响应解释为 HTML。现在,即使服务器向您发送PDF文件,您的浏览器也会尝试将其理解为HTML。这就是问题所在。我正在寻找可能的原因。:)Content-Type: text/html