解决Request header field XXX is not allowed by access-control-allow-headers in preflight response_request header field x-custom-header is not allowe-程序员宅基地

技术标签: java  开发语言  

问题

Access to XMLHttpRequest at ‘http://B.com/path/a’ from origin ‘http://A.com’ has been blocked by CORS policy: Request header field AC-User-Agent is not allowed by Access-Control-Allow-Headers in preflight response.

在这里插入图片描述




产生原因

前后端分离项目,由于老版本项目没有接入网关和微服务,因此需要通过域名加接口地址的方式来直接访问,因此出现以下情况:

网站主域名是A.com,老接口服务的域名是B.com。
在调用老接口服务时,要求前端在header里必须加上AC-User-Agent字段,用于实现老接口业务
在这种情况下,前端在A.com网站上调用B.com,由此产生上述问题




解决方法

由于是跨域调用B.com接口时,未允许使用请求头AC-User-Agent(Request header field AC-User-Agent is not allowed by Access-Control-Allow-Headers),因此需要在B.com的Java代码里面新建一个过滤器,在过滤器中设置AC-User-Agent为合法请求头

@WebFilter("/*")
public class CorsFilter implements Filter {
    

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
    
	}

	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    

		HttpServletResponse resp = (HttpServletResponse) servletResponse;
		HttpServletRequest req = (HttpServletRequest) servletRequest;

		String origin = req.getHeader("Origin");
		resp.setHeader("Access-Control-Allow-Origin", origin);
		resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
		resp.setHeader("Access-Control-Allow-Headers", "AC-User-Agent, token, content-type");
		resp.setHeader("Access-Control-Allow-Credentials", "true");
		filterChain.doFilter(servletRequest, servletResponse);
	}

	@Override
	public void destroy() {
    
	}
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HO1_K/article/details/126501541

智能推荐

数据安全流通的解决方案(一)_数据作为产生价值的一个源头,面临着数据要素流动与价值释放,但这与数据治理与隐私-程序员宅基地

文章浏览阅读1.9k次。作者介绍@汪溯阿里云DataTrust主架构师/高级安全专家“数据人创作者联盟”成员。01前言我今天在这个分享首先会以介绍这个云上的安全,威胁和挑战以及阿里云的一个应对措施为切入点,来介绍阿里云的产品的整个一个蓝图,然后后面我会根据这个阿里云的安全的基础能力,来介绍我们这个data trust的一些整体的架构。02安全挑战首先一个就是说我们先来谈一下这个当前云的安全挑战和趋势今年应该是这个云运算在整个全社会的关注度是非常高的,因为我们国家现在是大力提倡数字.._数据作为产生价值的一个源头,面临着数据要素流动与价值释放,但这与数据治理与隐私

VS2019 创建.net 5.0项目_vs2019 .net5-程序员宅基地

文章浏览阅读7k次,点赞3次,收藏2次。1、VS工具->获取工具和扩展->单个组件确认已经安装.net 5.02、创建 WIN APP项目工具新建->项目3、更改目标框架选中项目右键属性_vs2019 .net5

打开Anaconda出现Navigator Error,check_hostname requires server_hostname错误解决方案_navigator start error-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏7次。原因:代理原因,你应该开启了科学上网的代理,新版的urllib3 中,代理的主要架构已更改,可以在这里阅读。解决方式:一、简单明了,关闭你的科学上网软件,或者关闭手动代理设置二、如果不想关闭这个,那就可以降低urllib3的版本使用命令pip install urllib3==1.25.11 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com然后就可以打开了..._navigator start error

括号匹配算法的C++实现_使用c++编写一个数据结构的检查括号匹配性的代码-程序员宅基地

文章浏览阅读259次。我们遍历输入的字符串,当遇到一个左括号时,将其压入栈中;当遇到一个右括号时,检查栈顶元素是否是与之匹配的左括号。如果不是匹配的左括号,或者栈为空,则括号不匹配。最后,如果栈为空,说明所有的括号都匹配。通过这种简单而直接的栈操作,我们可以有效地检查括号匹配,并在编程中避免出现括号不匹配的错误。括号匹配是一种常见的编程问题,涉及到检查给定的字符串中的括号是否正确匹配。你可以尝试修改示例字符串中的括号,或者使用其他字符串进行测试,以验证括号匹配算法的正确性。这表明示例字符串中的括号是正确匹配的。_使用c++编写一个数据结构的检查括号匹配性的代码

CISSP考试指南笔记:1.4 安全框架part5_cissp 安全框架行业标准-程序员宅基地

文章浏览阅读186次。这一节非常重要,在后面章节都会遇到,而且考试都或多或少会遇到。流程管理开发1.ITIL。ITIL(以前的信息技术基础设施图书馆)是由英国中央计算机和电信局(该机构在1990年代末被政府商务办公室(Office of Government Commerce,简称OGC)并入)在20世纪80年代开发的。它现在由AXELOS控股,AXELOS是英国政府和私人公司Capita的合资企业。ITIL是IT服务管理最佳实践的事实标准。ITIL的创建是因为越来越依赖信息技术来满足业务需求。ITI_cissp 安全框架行业标准

Office 2016 简体中文批量授权版镜像下载_ed2k://|file|sw_dvd5_office_professional_plus_2016-程序员宅基地

文章浏览阅读6.3k次。Office 2016 简体中文批量授权版镜像下载(含Visio、Project) 此处整理了office2016 VOL大客户批量授权版下载资源,包含了office2016 32位+64位版本、project2016 32位+64位版本、Visio2016 32位+64位版本。其实office2016的大客户版和批量授权版在功能上并没有任何区别,只是在授权方式上不同而已,相对来说,VOL大客户版激活更加简单,下面提供的资源也都是VL大客户版。(零售版本资源请前往itellyou查看下载)..._ed2k://|file|sw_dvd5_office_professional_plus_2016_64bit_chnsimp_mlf_x20-424

随便推点

JavaGUI——swing组件基础(五)拆分窗格JSplitPane_swing 分割数据区域-程序员宅基地

文章浏览阅读4.4k次,点赞5次,收藏17次。目标图:界面分析:看到图片占据了大部分空间,立刻想到了边界布局(BorderLayout)。左右两边都可以从头到尾显示,说明是拆分窗格(JSplitPane)。基本布局想好以后,看右部,可以用标签(JLabel)来导入图片。再看左部,是个列表框(JList)和滚动窗格(JSrocllPane)。介绍一下拆分窗格:拆分窗格(JSplitPane)是容器类组件,可以把容器按指定方向(横/竖)拆分。其构..._swing 分割数据区域

2021-02-19产品经理学习之第三阶段运营_图文混排和图文分离-程序员宅基地

文章浏览阅读217次。一:.拉新拉新的定义:从0开始积累用户的过程拉新的方法:名人效应(本身团队自带资源;有钱请明星;没钱自己上)新媒体运营(微博;抖音;快手;微信公众号)地推(发传单;优点-吸引眼球;缺点-流量少,效率低)–目标用户明确异业合作(两个公司以上进行合作,用户群体一样但是功能不同的公司)—合作尽量不要大的功能改动机构获客(合作关系)目标群体重合度较高机构进行合作,以此来获取用户的方式-----友盟 /神测数据/诸葛IO 第三方数据服务商一般是TO B 的公司3.冷启动的定义:_图文混排和图文分离

论文学习——多度量水文时间序列相似性分析_多元时间序列相似度 溯源-程序员宅基地

文章浏览阅读1k次。多度量组合可以提高相似性分析的准确性本文方法:首先使用多个单一相似度量分别计算相似时间子序列;然后采用改进的BORDA投票法对各度量分析得到的相似子序列进行组合和排序,得到最终的相似时间子序列。_多元时间序列相似度 溯源

(2019.10.27已解决)Linux启动报错:undefined symbol: EVP_CIPHER_CTX_cleanup_attributeerror: /lib64/libcrypto.so.3: undefined s-程序员宅基地

文章浏览阅读4k次。如题所示。报错原因是由于openssl升级到1.1.0之后导致[^1]。找到openssl.pyfind \ .name openssl.py查找openssl.py所在路径,找到openssl.py文件。用vim打开替换cleanup将文中libcrypto.EVP_CIPHER_CTX_cleanup替换为libcrypto.EVP_CIPHER_CTX_reset..._attributeerror: /lib64/libcrypto.so.3: undefined symbol: evp_cipher_ctx_clea

iOS常用第三方框架_ios sf2是什么格式意思-程序员宅基地

文章浏览阅读2.4k次。iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角),ios冰山一角图像:1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。 下载:https://github.com/mwaterfall/MWPhoto_ios sf2是什么格式意思

尚硅谷2020最新版宋红康JVM教程持续更新中(java虚拟机详解,jvm从入门到精通) - ppt课件_尚硅谷jvmppt百度网盘-程序员宅基地

文章浏览阅读6.7k次,点赞12次,收藏69次。尚硅谷宋红康JVM教程(java虚拟机详解,jvm从入门到精通)_哔哩哔哩 -bilibilihttps://www.bilibili.com/video/av83622425文章中来源于Spirit_wolf老师一边看视频一边截图PPT的整理:https://gitee.com/Spirit_wolf/jvm-video-shk谢谢~_尚硅谷jvmppt百度网盘

推荐文章

热门文章

相关标签