使用 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 不会重定向,也不会更改上一页,它只会在控制台中报告以下警告:
资源解释为 Document,但使用 MIME 类型 application/zip 传输。
该过程在 Firefox 中正常运行,如果我打开一个新标签并直接转到http://0.0.0.0:3000/files/download.zip. 我做错了什么,还是这是 Chrome 的错误/怪癖?
http://0.0.0.0:3000/files/download.zip
我已经解决了这个问题——只需打开一个新标签即可。
为什么它不起作用我不完全确定,但这可能与 Chrome 如何处理页面上的多个下载有关,也许它认为它们是垃圾邮件而忽略了它们。