问题记录-全局配置了跨域但是后端下载仍然跨域-(Java, SpirngBoot)

问题背景

前端请求后端下载文件,其它接口都不会跨域,唯独这个下载跨域了。上代码:

@ApiOperation(value = "下载模板文件", notes = "importArchive")
@GetMapping("v1/downLoadTemplate/{templateName}")
public void getTemplate(@PathVariable("templateName") String templateName, HttpServletResponse response) {ClassLoader classLoader = getClass().getClassLoader();// 罪魁祸首response.reset();response.setContentType("application/octet-stream");response.setHeader("Content-Disposition", "attachment; filename=" + "template" + ".xlsx");try (  InputStream fis = classLoader.getResourceAsStream("importer/template/规划成果档案.xlsx");OutputStream out = response.getOutputStream()) {byte[] buffer = new byte[1024];int len;while ((len = fis.read(buffer)) != -1) {out.write(buffer, 0, len);}out.flush();} catch (FileNotFoundException e) {throw new FileCatalogException.TemplateNotFound(templateName);} catch (IOException e) {throw new RuntimeException(e);}
}

这个代码也是直接从网上粘贴的,结果就遇到坑了,这个故事告诉我们粘贴代码的时候还是要检查一下核心代码干了什么事情。
解决办法:
经过一番搜索,找到了一篇好文,和我的问题一模一样, 参考这篇文章:
https://blog.csdn.net/qq_39999478/article/details/107157324
https://blog.csdn.net/qq_39999478/article/details/107157324

这里也记录一下防止博客失效:
方案一:

response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + "template" + ".xlsx");
response.addHeader("Access-Control-Allow-Origin","*");

方案二:
把这个该死的reset()注释掉

response.reset();

好了今天的问题记录就到这里,我继续写Bug去了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Educational Codeforces Round 165 (Rated for Div. 2 ABCDE 题)视频讲解

A. Two Friends Problem Statement Monocarp wants to throw a party. He has n n n friends, and he wants to have at least 2 2 2 of them at his party. The i i i-th friend’s best friend is p i p_i pi​. All p i p_i pi​ are distinct, and for every i ∈…

并发编程之线程池的设计和原理

一、线程池 提前创建一系列的线程,保存在这个线程池中,有任务要执行的时候,从线程池中取出线程来执行。没有任务的时候,线程池放回去。 二、为什么要使用线程池 线程使用上的问题: 线程的频繁创建 和 销毁 线程的数量过多&…

政安晨:【Keras机器学习示例演绎】(二十六)—— 图像相似性搜索的度量学习

目录 概述 设置 数据集 嵌入模型 测试 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本文…

基于Pytorch深度学习——多层感知机

本文章来源于对李沐动手深度学习代码以及原理的理解,并且由于李沐老师的代码能力很强,以及视频中讲解代码的部分较少,所以这里将代码进行尽量逐行详细解释 并且由于pytorch的语法有些小伙伴可能并不熟悉,所以我们会采用逐行解释小…

Word域代码学习(简单使用)-【SEQ】

Word域代码学习(简单使用)-【SEQ】 快捷键 序号快捷键操作1 Ctrl F9 插入域代码花括号2 F9 显示域代码结果3 Shift F9 切换为域代码4 Windows Alt F9 切换全部域代码 域代码说明 域代码不区分大小写在word中,依次选择插入➡文档部件➡域即可选择插入…

Go 泛型函数中的 ~ 符号 的意义 -- 用于指定类型的底层类型

本文通过 slices.Clone 泛型函数介绍了 Go 是如何使用类型推断完成参数类型的解构。简单来说,如果第一个类型参数是一个复合类型,则可以通过第二、第三或更多的类型参数约束复杂类型中的类型参数,而类型推断则可以通过第一个参数推断出后续类…

Linux 学习 --- 编辑 vi 命令

1、vi 基本概念(了解) 基本上 vi 可以分为三种状态,分别是命令模式 (command mode)、插入模式 (Insert mode) 和底行模式 (last line mode),各模式的功能区分如下: 命令行模式 command mode)  控制屏幕光标的移动&a…

PotatoPie 4.0 实验教程(31) —— FPGA实现摄像头图像高斯滤波

什么是高斯滤波 高斯滤波是一种常见的图像处理技术,用于去除图像中的噪声和平滑图像。它的原理基于统计学中的高斯分布(也称为正态分布)。 在高斯滤波中,一个二维的高斯核函数被用来对图像中的每个像素进行加权平均。这个高斯核…

jvm 马士兵 01

01.JVM是什么 JVM是一个跨平台的标准 JVM只识别class文件,符合JVM规范的class文件都可以被识别

Java中异常的处理方式之二:throws详解

在Java中,除了使用try-catch语句块来直接处理异常外,还有另一种处理异常的方式:通过在方法签名中使用throws关键字声明该方法可能抛出的异常,从而将异常的处理责任传递给调用该方法的代码。这种方式对于某些情况下无法直接处理异常…

AI智能名片商城小程序:引领企业迈向第三增长极

随着数字化浪潮的席卷,私域流量的重要性逐渐凸显,为企业增长提供了全新的动力。在这一背景下,AI智能名片商城系统崭露头角,以其独特的优势,引领企业迈向第三增长极。 私域流量的兴起,为企业打开了一扇新的销…

【codeforces】Immobile Knight

Immobile Knight 我感觉自己不太适合写codeforces,简单题也比较考验思维,当时这题看了半天以为是搜索,写了20分钟暴力交了,还好对的,20个人19个人5分钟不到速通第一题,唯留我一人在第一题凌乱。下来看看这…

Ubuntu下安装并配置DNSMASQ服务器:轻松搭建自己的DNS解析和DHCP服务

今天我要给大家介绍一篇关于在Ubuntu下安装并配置DNSMASQ服务器的技术博客。废话不多说,我们直接进入正题吧! 首先,我要夸夸三丰云的免费服务器。哇唔,三丰云的免费云服务器真是不错啊!配置简直就是一级棒&#xff01…

【Jenkins】持续集成与交付 (十四):在Jenkins中使用Pipeline Script从SCM管理项目流水线

🟣【Jenkins】持续集成与交付 (十四):在Jenkins中使用Pipeline Script从SCM管理项目流水线 1、在项目根目录创建Jenkinsfile2、将Jenkinsfile上传到Gitlab3、在项目中引用该Jenkinsfile文件4、构建项目5、访问测试6、结论总结💖The Begin💖点点关注,收藏不迷路💖 在…

深度学习中的归一化:BN,LN,IN,GN的优缺点

目录 深度学习中归一化的作用常见归一化的优缺点 深度学习中归一化的作用 加速训练过程 归一化可以加速深度学习模型的训练过程。通过调整输入数据的尺度,归一化有助于改善优化算法的收敛速度。这是因为归一化后的数据具有相似的尺度,使得梯度下降等优化…

密码学基础练习五道 RSA、elgamal、elgamal数字签名、DSA数字签名、有限域(GF)上的四则运算

1.RSA #include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include <time.h>#define PRIME_MAX 200 //生成素数范围#define EXPONENT_MAX 200 //生成指数e范围#define Element_Max 127 //加密单元的…

Flink on k8s 入门实战

Flink on k8s 入门实战 背景 最近一直在学习flink on k8s,踩了不少坑,折腾了好几天,终于是达到了自己想要的效果。 首先说一下,我要实现的效果是什么?Application模式下,ip和端口保持不变,根据不同的路径访问不同的任务。 环境部署 这一步也是我遇到问题最多的一步…

dockerfile 搭建lamp 实验模拟

一 实验目的 二 实验 环境 1, 实验环境 192.168.217.88一台机器安装docker 并做mysql nginx php 三台容器 2&#xff0c; 大致框架 3&#xff0c; php php:Nginx服务器不能处理动态页面&#xff0c;需要由 Nginx 把动态请求交给 php-fpm 进程进行解析 php有三…

Matlab基本语法

基本语法 x pi %使用等号创建变量 y sin(-5) %使用括号提供函数输入桌面管理 save %将当前工作区保存到MAT文件 load %将MAT文件中的变量加载到工作区 clear %清空工作区的所有变量 clc %清除命令行窗口的所有文本 format %更改数值输出的显示方式数字类型 4 %标量 …

LT6911UXB HDMI2.0 至四端口 MIPI DSI/CSI,带音频 龙迅方案

1. 描述LT6911UXB 是一款高性能 HDMI2.0 至 MIPI DSI/CSI 转换器&#xff0c;适用于 VR、智能手机和显示应用。HDMI2.0 输入支持高达 6Gbps 的数据速率&#xff0c;可为4k60Hz视频提供足够的带宽。此外&#xff0c;数据解密还支持 HDCP2.2。对于 MIPI DSI / CSI 输出&#xff0…