【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;
}
相关推荐
d***93511 小时前
springboot3.X 无法解析parameter参数问题
android·前端·后端
n***840712 小时前
十七:Spring Boot依赖 (2)-- spring-boot-starter-web 依赖详解
前端·spring boot·后端
likuolei16 小时前
XSL-FO 软件
java·开发语言·前端·数据库
正一品程序员16 小时前
vue项目引入GoogleMap API进行网格区域圈选
前端·javascript·vue.js
j***894616 小时前
spring-boot-starter和spring-boot-starter-web的关联
前端
star_111216 小时前
Jenkins+nginx部署前端vue项目
前端·vue.js·jenkins
im_AMBER16 小时前
Canvas架构手记 05 鼠标事件监听 | 原生事件封装 | ctx 结构化对象
前端·笔记·学习·架构
JIngJaneIL16 小时前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·农产品电商系统
Tongfront16 小时前
前端通用submit方法
开发语言·前端·javascript·react
c***727416 小时前
SpringBoot + vue 管理系统
vue.js·spring boot·后端