是否可以使用带有"Content-Disposition:attachment"标题的source作为<img>的src值?

Mik*_*cer 11 html google-chrome image http content-disposition

有一个带有端点的3d party API,http://endpoint/image_id它返回带有此类标头的响应:

content-disposition:attachment; filename=image.png
content-length:27774
content-type:image/png
Run Code Online (Sandbox Code Playgroud)

根据MDN文档,

在常规HTTP响应中,Content-Disposition响应标头是一个标头,指示内容是否应 在浏览器中内嵌显示,即作为网页或作为网页的一部分显示,还是作为附件显示下载并保存在本地.

但是,我必须像这样使用它:

<img src="http://endpoint/image_id">
Run Code Online (Sandbox Code Playgroud)

在Chrome中,它适用于我,我显示的图像.但我怀疑它.可以吗?

Fad*_*dek 1

它之所以有效,是因为 chrome 足够智能,可以判断您正在网页内使用它,并且它没有显示另存为对话框,但为什么您要冒险使用

content-disposition:attachment;
Run Code Online (Sandbox Code Playgroud)

你应该使用:

Content-Disposition: inline
Run Code Online (Sandbox Code Playgroud)

另外,这里还有一个关于堆栈溢出的问题,它与您的问题有类似的答案,解释了使用附件而不是内联之间的区别,请查看问题的批准答案。

  • 问题是,我不应该更改此标头,因为它在其他地方用于实际下载图像。 (2认同)
  • 如果我无法控制“Content-Disposition”标头怎么办? (2认同)