【VUE】a链接下载跨域文件直接打开而非下载(解决办法)

背景:a链接下载跨域文件时,浏览器默认会打开文件,而非直接下载

html 复制代码
<a :href="url" :download="fileName">下载</a>
javascript 复制代码
data() {
    return {
    	url: 'http://xxxxx.mp4',
    	fileName: 'xxxxx.mp4'
    }
}

解决方式

服务器设置HTTP请求头为Content-Dispositionattachment即可,访问的时候就是直接下载而不

是浏览!

注:这里需要添加download参数来区分,这样同一地址可根据参数选择要直接打开还是直接下载

html 复制代码
<a :href="`${url}?download=1`" :download="fileName">下载</a>

nginx.conf配置文件中配置以下内容

javascript 复制代码
location / {
	add_header 'Access-Control-Allow-Origin' '*';
	add_header 'Access-Control-Allow-Headers' '*';
	add_header 'Access-Control-Allow-Methods' '*';
	
	# OPTIONS 直接返回204
	if ($request_method = 'OPTIONS') {
		return 204;
	}
	# 仅允许 GET|POST|HEAD
	if ($request_method !~* GET|POST|HEAD) {
		return 405;
	}

	# URL?download=1 附件下载
	if ($arg_download) {
		add_header 'Content-Disposition' 'attachment';
	}

	try_files $uri $uri/ =404;
}
相关推荐
华仔啊5 分钟前
前端登录token到底应该存在哪?LocalStorage、SessionStorage还是Cookie?一篇说透!
前端·javascript
BeefyBytes13 分钟前
动态组件库建设
前端
懒大王952731 分钟前
uni-app + Vue3 + EZUIKit.js 播放视频流
开发语言·javascript·uni-app
懒大王952735 分钟前
uni-app + Vue3 开发展示 echarts 图表
前端·uni-app·echarts
yinuo41 分钟前
Uni-App跨端实战:微信小程序WebView与H5通信全流程解析(01)
前端
xkroy1 小时前
ajax
前端·javascript·ajax
Yvonne爱编码1 小时前
AJAX入门-URL、参数查询、案例查询
前端·javascript·ajax
闲人编程1 小时前
前端形态与样式风格:从古典到现代的视觉语言演进
前端·css·状态模式·组件·js·风格·响应式
JudithHuang1 小时前
Mac版微信开发者工具登录二维码不显示问题解决方案
前端
Swift社区1 小时前
如何解决 Vue2 前端项目为何无法访问本地资源(chunk.js 加载一直 pending/转圈)
开发语言·前端·javascript