五、跨域问题——Cors Filter

如何用CORS来解决JS中跨域的问题 最近楼主在写代码的时候遇到了一个比较纠结的问题,需要在http请求的页面调用HTTPS的请求,但因为进行了跨域,导致请求失败。在这个过程中,楼主找了很多办法,如JSONP等,但都不能满足我的需求,后来,楼主发现,CORS提供了一套AJAX跨域问题的解决方案。 CORS的原理:CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用向另一个域提交跨域 AJAX 请求 阅读详情

官方文档地址:CORS Filter : Cross-Origin Resource Sharing for Your Java Web Apps (dzhuvinov.com)。

1.1、 引用方式

  • xml

<dependency>

<groupId>com.thetransactioncompany</groupId>

<artifactId>cors-filter</artifactId>

<version>[ version ]</version>

</dependency>

  • xml

<filter>

<filter-name>CORS</filter-name>

<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>

</filter>

<filter-mapping>

        <filter-name>CORS</filter-name>

        <url-pattern>/*</url-pattern>

</filter-mapping>

1.2、 配置参数

1.2.1、 cors.allowGenericHttpRequests

默认值为“true”。

  • true:允许一般http/https请求通过过滤器。
  • false:仅允许CORS请求通过过滤器。

建议默认配置“true”。

1.2.2、 cors.allowOrigin

默认值为“*”。

用于配置CORS过滤器允许的源地址列表。

如果允许所有源地址,则设置为“*”。

未被允许的源地址请求将直接被返回403状态——禁止(拒绝)请求。

建议默认配置“*”。

1.2.3、 cors.allowSubdomains

默认值为“false”。

  • true:允许源地址的所有子域名相关的源地址通过CORS过滤器。
  • false:不允许源地址的所有子域名相关的源地址通过CORS过滤器。

建议默认配置“false”。

注:子域通过比较其组合和后缀(主机名/IP地址和可选端口号)进行匹配。

1.2.4、 cors.supportedMethods

请求头参数为“Access-Control-Allow-Methods”。

默认值为“GET, POST, HEAD, OPTIONS”。

支持的http/https方法请求方式,如果前台请求方法所采用的方式不属于其中的内容,将被CORS过滤器拦截,并返回405状态——“不允许使用方法”,拒绝响应。

建议默认配置“GET, POST, HEAD, OPTIONS”。

1.2.5、 cors.supportedHeaders

请求头参数为“ Access-Control-Allow-Headers”。

默认值为“*”。

配置“*”时,允许请求头参数通过过滤器。

建议默认配置“Accept, Origin,X-Requested-With, Content-Type,Last-Modified”。

1.2.6、 cors.exposedHeaders

响应头参数为“ Access-Control-Expose-Headers”。

默认值为空。

响应报头指示哪些报头可以公开为通过。

默认情况下,只显示6个简单的响应头,包括“Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma”。

建议默认配置“X-Test-1,X-Test-2”。

1.2.7、 cors.supportsCredentials

响应头参数为“ Access-Control-Allow-Credentials”。

默认值为“true”。

响应头用于在请求要求包含 credentials(Request.credentials 的值为 include)时,告知浏览器是否可以将对请求的响应暴露给前端 JavaScript 代码,例如cookies、authorization headers、TLS client certificates之类的。

  • true:允许。
  • false:不允许。

建议默认配置“true”。

1.2.8、 cors.maxAge

响应头参数为“ Access-Control-Max-Age”。

默认值为“-1”。

这个响应头表示preflight request(预检请求)的返回结果(即 Access-Control-Allow-Methods 和Access-Control-Allow-Headers 提供的信息)可以被缓存多久。

建议默认配置“3600”。

1.2.9、 cors.tagRequests

默认值为false。

是否启用请求标记,以便在整个后端服务(filter/servlet)请求处理链路中均可以获取请求的CORS信息。

  • true:开启。
  • false:不开启。

建议默认配置“true”。

请求标记包含以下四项:

  1. isCorsRequest:标记请求是否为跨域请求,值为“true或false”。
  2. origin:标记请求的源地址,未定义时为“null”。
  3. requestType:如果为跨域请求时,该请求标记主要标记当前正在进行的是真实(actual)请求,还是预检(preflight)请求,值为“actual或preflight”。
  4. requestHeaders:如果当前为跨域请求且为预检方式,则可获取“Access-Control-Request-Headers”的值,如果未定义,则为“null”。
thetransactioncompany.cors.CORSFilter jar包 com.thetransactioncompany.cors.CORSFilter 所需jar包 立即下载

相关推荐

tomcat服务器配置的跨域允许

打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/g4xns 在部署tomcat服务器之后,访问发生跨域问题。其中包含了所需的cors-filter-1.7版本和java-property-utils-1.9组件。经测试没有问题,需特别注意的是资源的命名空间设置为com.thetransactioncompany.cors 在部署了Tomcat服务器之后,开发者经常会遇到跨域访问问题。为了解决这个问题,配置服务器允许跨域请求变得至关重要。本文将会详细介绍如何配置Tomcat以解决跨域问题,并提供对应的资源下载链接和注意事项。 跨域资源共享(CORS)是一种安全机制,它允许一个域上的Web应用访问另一个域的资源。在Web开发中,这是常见的问题,尤其是在前后端分离的架构中。为了解决Tomcat服务器中的跨域问题,需要正确配置CORS策略。 具体配置过程包括以下几个步骤: 1. 下载并添加cors-filter-1.7版本到Tomcat的lib目录中。这个过滤器能够帮助我们设置响应头,以满足CORS的需求。 2. 将java-property-utils-1.9组件也添加到lib目录下。这个组件提供了一些实用的Java属性操作工具,可能在配置过程中需要使用。 3. 修改Tomcat的配置文件(通常是web.xml)来添加CORS过滤器的定义。在这里,开发者需要详细配置过滤器的具体参数,比如允许的域、请求方法和头部信息等。 4. 设置好过滤器后,需要确保所有资源的命名空间与配置文件中设置的一致。这是非常关键的一步,错误的命名空间设置会导致配置不生效。 5. 测试配置是否生效。开发者可以通过发送预检请求,检查服务器是否返回了正确的CORS响应头。常见的响应头包括Access-Control-Allow-Origin、Access-Cont

CORSFilter过滤器作用于自定义过滤器之后造成的跨域问题(SpringBean IOC执行优先级)

CORSFilter过滤器作用于自定义过滤器之后造成的跨域问题介绍背景问题分析排查确认问题解决总结相关知识 介绍 项目中使用了自定义的Filter,然后加了用于解决前端跨域问题的CORSFilter配置,之前可能不存在跨域验证Token的问题,这次突然前端访问全部报了Token验证失败问题,“没有携带令牌”,因为跨域而造成的Token拿不到,但是已经配置了CORSFilter允许Cookie跨域等,进而开始排查之路。 背景 前端访问后端接口,报未携带令牌(Token); 登录后仍无效,登录逻辑无问题; 本

huofuman960209的博客 8467

实测对比:纳芯微NSD1624在光伏逆变器中的性能表现(含温度测试数据)

本文详细评测了纳芯微NSD1624非隔离驱动芯片在光伏逆变器中的性能表现,包括动态效率、高温稳定性及抗干扰能力。实测数据显示,该芯片在800V母线电压下效率峰值达99.03%,高温环境下结温稳定在102.7℃,且传播延迟一致性优异。与竞品相比,NSD1624在总损耗和热阻方面具有显著优势,是光伏逆变器驱动方案的理想选择。

weixin_29297127的博客 363

跨域之CorsFilter

跨域之CorsFilter

weixin_52236586的博客 3916

用Matlab搞定Delta并联机器人运动学:从建模到正逆解完整流程(附代码)

本文详细介绍了如何使用Matlab实现Delta并联机器人的运动学分析,包括几何建模、正逆解求解及可视化验证。通过符号计算和数值迭代法,解决非线性方程组问题,并提供完整代码示例,帮助读者快速掌握Delta机器人的运动学计算与应用。

weixin_30955617的博客 175

Windsurf 入门指南:从安装到实战(免费AI IDE新选择)

本文是Windsurf AI IDE的详细入门指南,涵盖从下载安装到核心功能实战的全过程。通过对比分析,文章指出Windsurf凭借其免费、小白友好的特性及强大的上下文感知能力,成为学习编程和提升开发效率的新选择,特别适合零基础开发者和寻求高效AI编程工具的开发者。

weixin_29237635的博客 854

SpringBoot在使用SpringSecurity时,配置跨域过滤器CorsFilter不生效分析解决

且this类型为FilterRegistrationBean,进入FilterRegistrationBean的getFilter()方法,返回为this.filter,查找filter的赋值操作setFilter()查看CorsFilter类可以知道跨域逻辑主要在以下doFilterInternal()方法执行,在此方法添加断点,debug执行,发送请求时未执行此方法,由此判断CorsFilter未执行过滤逻辑。

qq_43073162的博客 7130

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 145

CORS跨域问题原因和解决方案

Springboot跨域问题,是当前主流web开发人员都绕不开的难题。但我们首先要明确以下几点 - 跨域只存在于浏览器端,不存在于安卓/ios/Node.js/python/ java等其它环境 - 跨域请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。 - 之所以会跨域,是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。 浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就是跨域的HTT

蔚然成风 1万+

UNet 改进(27):结合SCSE注意力机制的UNet网络实现

本文介绍了一种结合SCSE注意力机制的改进UNet网络架构。该网络在保持UNet经典编码器-解码器结构基础上,通过在每层添加SCSEBlock模块,融合了通道注意力和空间注意力机制。通道注意力通过全局池化和1×1卷积生成通道权重,空间注意力则产生空间权重图,二者相加增强关键特征响应。该设计具有以下优势:1)保持原始UNet的多尺度特征提取能力;2)通过注意力机制提升对重要区域的关注度;3)计算效率高,仅增加少量参数。测试显示网络能保持输入输出分辨率不变,适用于医学图像分割等像素级预测任务。完整代码实现了5层

2401_82355416的博客 415

成功解决raise Py4JError py4j.protocol.Py4JError: py4j.protocol.Py4JError: Could not find py4j jar at 

成功解决raise Py4JError("Could not find py4j jar at {0}".format(jarpath)) py4j.protocol.Py4JError: Could not find py4j jar at 目录 解决问题 解决思路 解决方法 1、第一步安装jdk 2、第二步安装或升级py4j 解决问题 raise Py4JError("Could not find py4j jar at {0...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 4624

【SpringBoot】SpringBoot配置CORS跨域和遇到的问题

这里记录一次使用SpringBoot项目配置CORS跨域的写法和中间遇到的问题。 使用SpringBoot配置CORS跨域的方式有三种,下边分别介绍下。 一、方式一:使用@CrossOrigin注解 如果想要对某一接口配置 CORS,可以在方法上添加 @CrossOrigin 注解: @CrossOrigin(origins = {"http://localhost:8080", "null"}) @RequestMapping(value = "/test", method = RequestMethod

sfh2018的博客 2万+

今日指数项目之实时流数据采集【六】

实时数据采集代码

Maynor的博客 2146

spring 跨域CORS Filter

方案一 spring中可以采用的跨域配置方式如下: RequestMapping 在一般性的配置中,在controller前添加@CrossOrigin即可使用spring的默认配置,允许跨域 该注解也可以配置一些设定,适合针对个别的controller @CrossOrigin 方案二 webconfig的方式配置全局跨域 @Configuration public class Jx...

赵英超的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【记录所遇到的问题】跨域异常 - 使用CORS-FILTER.jar解决跨域问题

【记录所遇到的问题】跨域异常 - 使用CORS-FILTER.jar解决跨域问题 目录 【记录所遇到的问题】跨域异常 - 使用CORS-FILTER.jar解决跨域问题 Maven方式导入jar web.xml配置 关于富文本跨域不成功的问题 Maven方式导入jar <dependency> <groupId>com.thetransac...

小淤的博客 4165

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring Boot 结合 CORS 解决前端跨域问题

CORS 是 W3C 定义的一种跨域访问标准,允许服务器在响应中添加特定的 HTTP 头,让浏览器判断是否允许跨域请求。响应头作用允许访问的源(可以是具体域名或允许的 HTTP 方法(等)允许的自定义请求头是否允许携带 Cookie预检请求缓存时间(秒)局部跨域→全局跨域(推荐)→复杂场景(如结合 Spring Security) →CorsFilter生产环境建议精确配置,避免安全隐患。✅最佳实践推荐@Override。

子冉冰清的博客 1579

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

跨域CORS图片上传问题

异常问题 项目中存在跨域图片上传请求,提示下列错误 Access to XMLHttpRequest at ‘http://localhost:8080/common/uploadPic’ from origin 'http://localhost:8000’has been blocked by CORS policy: Response to preflight request doesn’...

寒武没有纪 7319

Cors解决Java开发时的跨域问题

同源与跨域 跨域问题伴随着前后端分离而产生。不想jsp,asp,ejr等嵌入html语言,直接在混入html中就可以操作数据库从而获取数据,前后端分离开发的模式,前后端的通讯是基于Ajax技术,这是也是Javascript最重要的技术之一。 为了维护浏览器的安全,指定了同源策略也就是域名、协议、端口均相同的才能进行访问,当页面在执行一个脚本时会检查访问的资源是否同源,如果非同源,那么在请求数据时,就会被浏览器拦截。 但是在前后端分离开发中可能使用的软件都不一样,就可能造成三个中的不一致。(最常见就是端口)

个人学习笔记库,一篇一篇记录成长的足迹 2832

解决SpringSecurity权限拦截造成的CORS跨域问题

关于什么是跨域,可以看一下阮一峰的 跨域资源共享 CORS 详解 进入正题 一般我们在开发前后端分离项目时,需要进行跨域配置,但是如果我们集成了SpringSecurity做安全校验,只配置跨域是不行的,还需要配置一下SpringSecurity使其支持CORS。 @Override protected void configure(HttpSecurity http) throws Exception { http // by default uses a Bean by the

just 7208

如何解决CORS跨域问题

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;具体来讲,同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现;

superioc的博客 1918
上一篇: 四、跨域问题——跨源资源共享
下一篇: 常用知识——文件格式与ContentType对应表
Small-BUG
博客等级 码龄7年 85粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Small-BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值