【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;
}
相关推荐
shmily麻瓜小菜鸡8 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
aixingpan9 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolar_return2接口指南
前端·php
BillKu9 小时前
vue3双向邦定:使用defineModel替换defineProps+defineEmits
vue.js
八荒启·交互动画9 小时前
Web特效019-Web特效的定义与边界核心算法手写一遍:先跑起来,再谈高级效果
前端·webgl·网页特效·八荒启-交互动画·八荒启
晨枫阳10 小时前
Keycloak 授权体系详解:资源、策略、权限
前端
wcy031010 小时前
POST为什么会发送两次请求
javascript·ajax
志尊宝10 小时前
Vue3 零基础每日笔记(047):动态路由与路由参数——:id 传参、query 传参、props 解耦
前端·javascript·vue.js·笔记·html5
计算机毕设定制辅导-无忧学长10 小时前
《基于SpringBoot的中学教师数字胜任力测评网站的设计与实现》
java·vue.js·spring boot·mysql·中学教师数字胜任力测评网站
黑马程序员毕设11 小时前
基于微信小程序的二手交易平台设计与实现报告
前端·人工智能·spring boot·后端·考研
cAuth11 小时前
实现一个图形编辑器
前端·架构·计算机图形学