【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;
}
相关推荐
陈随易15 分钟前
2年没用Nodejs了,Bun很香
前端·后端·程序员
donecoding31 分钟前
Corepack 完全解析:从懵到懂,包管理器自由了
前端·node.js·前端工程化
yqcoder34 分钟前
端经典面试题:为什么 0.1 + 0.2 !== 0.3?
前端·css
ZC跨境爬虫39 分钟前
跟着 MDN 学 HTML day_12:(HTML网页图片嵌入)
前端·javascript·css·ui·html
光影少年1 小时前
reeact虚拟DOM、Diff算法原理、key的作用与为什么不能用index
前端·react.js·掘金·金石计划
用户059540174461 小时前
大模型记忆存储踩坑实录:LangChain 的 ConversationBufferMemory 让我排查了 6 小时
前端·css
是上好佳佳佳呀1 小时前
【前端(十二)】JavaScript 函数与对象笔记
前端·javascript·笔记
你真的快乐吗1 小时前
@fuxishi/svg-icon:一个 Vue 3 svg本地图标+iconify图标组件库,让图标管理不再头疼
前端·vue.js·typescript
Rkgua1 小时前
ESModule和Commonjs模块的区别
前端·javascript
江南十四行1 小时前
ReAct Agent 基本理论与项目实战(二)
前端·react.js·前端框架