【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;
}
相关推荐
申阳6 小时前
Day 7:05. 基于Nuxt开发博客项目-首页开发
前端·后端·程序员
Crystal3286 小时前
App端用户每日弹出签到弹窗如何实现?(uniapp+Vue)
前端·vue.js
摸着石头过河的石头6 小时前
Service Worker 深度解析:让你的 Web 应用离线也能飞
前端·javascript·性能优化
用户4099322502126 小时前
Vue 3中watch侦听器的正确使用姿势你掌握了吗?深度监听、与watchEffect的差异及常见报错解析
前端·ai编程·trae
1024小神6 小时前
Xcode 常用使用技巧说明,总有一个帮助你
前端
molly cheung6 小时前
Vue3:watch与watchEffect的异同
vue.js·watch·store·watcheffect
政采云技术7 小时前
音视频通用组件设计探索和应用
前端·音视频开发
不爱吃糖的程序媛7 小时前
Electron 如何判断运行平台是鸿蒙系统(OpenHarmony)
javascript·electron·harmonyos
Hilaku7 小时前
我用AI重构了一段500行的屎山代码,这是我的Prompt和思考过程
前端·javascript·架构
Cxiaomu7 小时前
React Native App 自动检测版本更新完整实现指南
javascript·react native·react.js