<a download>
,据我所知,应该在单击时下载响应文件。
我有以下不起作用的代码:
<a href="{{ download_url }}" style="cursor: pointer" download>Download PDF</a>
相关响应头:
Content-Disposition: filename="Podsumowanie_wizyty_X_Y_2016-07-06.pdf"
Content-Type: application/pdf
Date: Thu, 15 Sep 2016 13:26:19 GMT
Server: WSGIServer/0.1 Python/2.7.11
Vary: Authorization, Cookie
x-frame-options: SAMEORIGIN
返回的文件被查看,而不是下载。
我还发现,下面的例子很有效:
example1
但以下示例查看文件而不是下载:example2
一切似乎都按chrome的预期工作。
我这边能做点什么吗?它应该能够在不
Content-Disposition: attachment;
的情况下工作。如果可能的话,我想避免修改标题。 最佳答案
这是一个已知的记录在案的行为。
在您的情况下,HTTP头的格式不好,Content-Disposition
需要一个介于inline
和attachment
之间的头(实际上它稍微复杂一些,请参见RFC1806和RFC2616)。inline
在FireFox中被视为默认值(请参见MDN),但另一个浏览器的行为可能不同(无论download
优先于Content-Disposition
,请参见下文)
从这一刻起,浏览器的行为也发生了变化(这也解释了其他两个例子之间的区别):Chrome优先使用download
属性,而FireFox优先使用Content-Disposition
(参见MDN)
很遗憾,您没有任何选项,只能修复HTTP头(如果您想支持FireFox)