<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需要一个介于inlineattachment之间的头(实际上它稍微复杂一些,请参见RFC1806RFC2616)。inline在FireFox中被视为默认值(请参见MDN),但另一个浏览器的行为可能不同(无论download优先于Content-Disposition,请参见下文)
从这一刻起,浏览器的行为也发生了变化(这也解释了其他两个例子之间的区别):Chrome优先使用download属性,而FireFox优先使用Content-Disposition(参见MDN
很遗憾,您没有任何选项,只能修复HTTP头(如果您想支持FireFox)

10-06 08:37