关于前后端交互,取header的尴尬
背景:
最近在写一个接口的时候,需求是这样的,上传excel,匹配项目有多少个字段匹配上了,如果匹配上了在单元格上标注绿色背景,然后返回excel文件和匹配的详细。
首先这个excel文件,后端是不会去保存的,所以无法直接返回文件链接,然后需要返回一个json,告诉前端有多少行是匹配上了的,中匹配多少个,高匹配多少个,总多少个等信息
想法:
因为我们项目上有别的同事写好的工具类,传入workbook对象返回文件流给前端,文件返回搞定了,json怎么样返回给前端呢,我灵机妙用,既然content-type为文件流,Responebody被占用了,那我就增加一个header,让前端去拿这个header,接口吭哧吭哧写好了,自测postman也没有问题。OK提交代码了
问题:
前端死活都拿不到header的值,我还说,肯定是你的问题,postman、控制台网络都可以看到,为什么你取不到,肯定是你的问题。然后前端苦苦换方法尝试,都没有效果,没办法了,我自己写了个原生xhr去发生请求,发现,真取不到啊,奇怪得很。
问题原因:
然后我查阅资料,发现还真是我自己的问题,header上的设置,Access-Control-Expose-Headers看名字就知道这个的作用,
Access-Control-Expose-Headers 是一个CORS(跨源资源共享)头部,用于在浏览器端控制哪些响应头部信息可以被JavaScript代码访问。它指定了在跨源请求中,响应的哪些头部信息可以被客户端JavaScript代码访问。默认情况下,浏览器只允许访问一些简单的响应头部信息,例如
Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。这些头部信息可以被JavaScript代码直接访问,而不需要额外的配置
问题解决:
我直接设置可以访问,不想全部设置的可以指定header名字,多个逗号分隔
response.setHeader("Access-Control-Expose-Headers", "*");
关于前后端交互,取header的尴尬的更多相关文章
- Django之META与前后端交互
Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...
- Servlet实现前后端交互的原理及过程解析
在日常调试项目时,总是利用tomcat去启动项目,并进行前后端联调,但对于前后端的请求响应的交互原理及过程并不是特别清晰. 为什么在前端发出相应请求,就能跳转到后端通过程序得到结果再响应到前端页面呢? ...
- nodejs实现前后端交互
本人nodejs入门级选手,站在巨人(文殊)的肩膀上学习了一些相关知识,有幸在项目中使用nodejs实现了前后端交互,因此,将整个交互过程记录下来,方便以后学习. 本文从宏观讲述nodejs实现前后端 ...
- Python 利用三个简易模块熟悉前后端交互流程
准备工作 在学习Django之前,先动手撸一个简单的WEB框架来熟悉一下前后端交互的整体流程 本次用到的模块: 1.wsgiref,这是一个Python自带的模块,用于构建路由与视图 2.pymysq ...
- 三、vue前后端交互(轻松入门vue)
轻松入门vue系列 Vue前后端交互 六.Vue前后端交互 1. 前后端交互模式 2. Promise的相关概念和用法 Promise基本用法 then参数中的函数返回值 基于Promise处理多个A ...
- Node之简单的前后端交互
node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...
- 前后端交互实现(nginx,json,以及datatable的问题相关)
1.同源问题解决 首先,在同一个域下搭建网络域名访问,需要nginx软件,下载之后修改部分配置 然后再终端下cmd nginx.exe命令,或者打开nginx.exe文件,会运行nginx一闪而过, ...
- springboot+mybatis+thymeleaf项目搭建及前后端交互
前言 spring boot简化了spring的开发, 开发人员在开发过程中省去了大量的配置, 方便开发人员后期维护. 使用spring boot可以快速的开发出restful风格微服务架构. 本文将 ...
- 百度ueditor的图片上传,前后端交互使用
百度ueditor的使用 一个文本编辑器,看了网上很多文档写的很乱,这里拾人牙慧,整理下怎么使用. 这个东西如果不涉及到图片附件上传,其实很简单,就是几个前端文件,直接引用,然后配置下ueditor. ...
- SSM-网站后台管理系统制作(4)---Ajax前后端交互
前提:Ajax本身就为前后端交互服务的,实现功能:用户输入信息,实时判断用户的情况,这也是现在登录界面普遍流行的做法.前端js通过注释识别Controller层,该层查询返回,和之前Google验证码 ...
随机推荐
- 在开发过程中使用git rebase还是git merge,优缺点分别是什么?
前言 在开发过程中,git rebase 和 git merge 都是常见的代码版本管理工具.它们都能够将分支合并到主分支,并且都有各自的优缺点. git merge git merge 是一种将两个 ...
- 实例讲解Spring boot动态切换数据源
摘要:本文模拟一下在主库查询订单信息查询不到的时候,切换数据源去历史库里面查询. 本文分享自华为云社区<springboot动态切换数据源>,作者:小陈没烦恼 . 前言 在公司的系统里,由 ...
- LeetCode 周赛 347(2023/05/28)二维空间上的 LIS 最长递增子序列问题
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 往期回顾:LeetCode 单周赛第 346 场 · 仅 68 人 AK 的最短路问题 周赛 347 概览 ...
- 2023最新IntellJ IDEA诺依SpringCloud开发部署文档(保姆级别)
目录 若依RuoYi v3.6.2部署文档 一.环境构建 二.模块描述 三.部署后端 1.下载到本地. 2.MySQL导入数据. 3.Nacos修改 (1)保证本地Nacos下载安装成功,修改本地Na ...
- 深入分析Go语言与C#的异同
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 为了更加深入地介绍Go语言以及与C#语言的比较,本文将会 ...
- Go应用性能优化的8个最佳实践,快速提升资源利用效率!
作者|Ifedayo Adesiyan 翻译|Seal软件 链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确 ...
- 【技术积累】Mysql中的SQL语言【一】
建表语句 后续所有内容建立在这些SQL语句上 CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); CREATE ...
- Maven进阶
前言 在项目开发的过程中,我们通常要使用到外部依赖的组件,同时也会使用某些插件来帮助我们管理项目.例如,我们访问数据库的时候需要使用到jdbc组件,我们可以下载对应的jar包去加载到我们的应用中.在我 ...
- JavaCV的摄像头实战之十二:性别检测
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<JavaCV的摄像头实战> ...
- 从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生
摘要:随着云计算的兴起和渗透,云数仓成为了数仓技术演进的新阶段,并且逐渐成为了众多企业的共同选择. 本文分享自华为云社区<从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生>,作 ...