Ash*_*ams 184 javascript google-chrome
使用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
Run Code Online (Sandbox Code Playgroud)
如果遵循,则返回以下标题:
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
Run Code Online (Sandbox Code Playgroud)
Chrome不会重定向,也不会更改上一页,它只会在控制台中报告以下警告:
资源解释为Document但使用MIME类型application/zip传输.
该过程在Firefox中正常运行,如果我打开一个新标签并直接进入,也可以在Chrome中正常运行http://0.0.0.0:3000/files/download.zip.我做错了什么,或者这是Chrome的错误/怪癖?
Roy*_*Han 161
您可以在<a>标记中指定HTML5 下载属性.
<a href="http://example.com/archive.zip" download>Export</a>
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download
Sae*_*ati 32
在您的请求标头中,您已发送Content-Type: text/html,这意味着您希望将响应解释为HTML.现在,即使服务器向您发送PDF文件,您的浏览器也会尝试将其理解为HTML.那就是问题所在.我正在寻找原因可能是什么.:)
Eva*_*van 24
我在提供PDF文件(MIME类型application/pdf)时遇到了这个问题,并通过设置Content-Disposition标头解决了这个问题,例如:
Content-Disposition: attachment; filename=foo.pdf
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
Ash*_*ams 22
我已经解决了这个问题......只需打开一个新标签即可.
为什么它不起作用我不完全确定,但它可能与Chrome如何处理页面上的多个下载有关,也许它认为它们是垃圾邮件而只是忽略它们.
Cha*_*nac 22
我无法找到任何地方只是对信息的解释.这是我的解释.
据我了解,Chrome期待它可能显示的一些材料(文档),但它获得了无法显示的东西(或者它被告知不显示的东西).
这是一个关于如何在HTML页面级别声明文档的问题href(参见downloadRoy的消息中的属性)以及如何通过HTTP头(特别是Content-Disposition)在服务器的答案中声明它.这是合同问题,而不是希望和期望.
为了继续Evan的方式,我经历过:
Content-type: application/pdf
Content-disposition: attachment; filename=some.pdf
Run Code Online (Sandbox Code Playgroud)
是刚刚不一致有:
<a href='some.pdf'>
Run Code Online (Sandbox Code Playgroud)
Chrome会将资源解释为文档而已转移...
实际上,附件处理只是意味着:浏览器不应解释链接,而是将其存储在某处以用于其他隐藏目的.在上面,要么download在旁边丢失href,要么Content-disposition必须从标题中删除.这取决于我们是否希望浏览器呈现文档.
希望这可以帮助.
我今天使用我的node.js/express.js应用程序在Chrome版本30.0.1599.66上遇到了同样的问题.
标头是正确的,快速正确地自动将它们设置,它工作在指示其他浏览器,把HTML 5"下载"属性不解决,什么都解决它要到铬高级设置和检查框"请问哪里保存下载前的每个文件".
之后,没有"资源解释为文档...."错误报告在此问题的标题中,因此看起来我们的服务器代码是正确的,当Chrome设置为保存时,Chrome是错误地在控制台中报告该错误文件自动转移到某个位置.
通过Javascript执行文件下载时,我遇到了类似的问题。添加下载属性没有区别,但是添加target ='_ blank'确实没有作用-我不再收到“资源解释为文档...”控制台消息。
这是我非常简单的代码:
var link = document.createElement('a');
link.target = '_blank';
link.href = url;
document.body.appendChild(link); // Required for Firefox
link.click();
link.remove();
Run Code Online (Sandbox Code Playgroud)
我还没有尝试使用直接HTML,但是希望它能正常工作。
请注意,我发现Firefox要求将链接附加到文档中,而Chrome可以在没有链接的情况下使用。
| 归档时间: |
|
| 查看次数: |
356635 次 |
| 最近记录: |