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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (118)

如果使用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中是正确的,如果我打开一个新的选项卡并直接转到http://0.0.0.0:3000/files/download.zip...。我是不是做错了什么,还是这是Chrome的一个错误?

提问于
用户回答回答于

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

用户回答回答于

可以指定HTML 5。下载属性中的<a>标签。

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

扫码关注云+社区