js下载的几种方式

写在前面

这里主要总结.mp3,.json等浏览器默认打开而非下载的这类文件下载方式。其他像.zip.,.rar等文件浏览器默认处理方式就是下载。

1.download属性

HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载(目前只有chrome、firefox和opera支持)。

示例:<a href="http://XXX" download></a>

2.服务器返回数据流

走服务端返回二进制流给浏览器下载,这种方式可以通过指定content-type来强制让浏览器选择下载而非打开的方式。

content-type值定义参考:http://www.zuidaima.com/question/2232374618098688.htm

前端用一个隐藏的form

3.其他网上方法

其他直接使用iframe、form等方式亲测不靠谱,会报类似如下提示,且还是下载不了。

Resource interpreted as Document but transferred with MIME type audio/mpeg: