java web跨域拦截访问,多个域

java后台设置可跨域访问,前端ajax获取json数据,解决浏览器限制跨域访问的问题   在本地用ajax跨域访问请求时报错: XMLHttpRequest cannot loadhttp://xxx/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.   今天有个同事叫我帮... 阅读详情

1.配置

web.xml过滤器配置:

<filter>
		<filter-name>cors</filter-name>
		<filter-class>com.ks.tow.common.filter.CORSFilter</filter-class>
		<init-param>
		    <param-name>allows</param-name>
		    <param-value><!-- 被允许的域,可多个域','逗号隔开 -->
		        http://192.168.0.156:8080
		    </param-value>
		</init-param>
	</filter>

2.java代码

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * 跨域请求CORS过滤器.
 * 
 * @author LIU
 *
 */
public class CORSFilter implements Filter {

	private List<String> allowList;
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		String allows = filterConfig.getInitParameter("allows");
		String[] strs = allows.split(",");
		this.allowList = Arrays.asList(strs);
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
			HttpServletRequest req = (HttpServletRequest) request;
			HttpServletResponse resp = (HttpServletResponse) response;
			String reqHeaders = req.getHeader("Access-Control-Request-Headers");
			String originHeader = req.getHeader("Origin");
			if (allowList.contains(originHeader)) {
				resp.setHeader("Access-Control-Allow-Origin", originHeader);
				resp.setHeader("Access-Control-Allow-Methods", "GET, POST, HEAD, TRACE, PUT, DELETE, OPTIONS, CONNECT");
				if (StringUtils.isBlank(reqHeaders)) {
					resp.setHeader("Access-Control-Allow-Headers", "Content-Type, x_requested_with, *");
				} else {
					resp.setHeader("Access-Control-Allow-Headers", reqHeaders);
				}
				resp.setHeader("Access-Control-Max-Age", "30");
				resp.setHeader("Access-Control-Allow-Credentials", "true");
                            // Access-Control-Allow-Credentials = true时,参数Access-Control-Allow-Origin 的值不能为 '*'
			}
			if ("OPTIONS".equals(req.getMethod()))
				return;
		}
		chain.doFilter(request, response);
	}

	@Override
	public void destroy() {

	}

}

大鹏激光

springboot 解决跨域问题 JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取! 阅读详情

相关推荐

error C2039: “int_least8_t”: 不是“`global namespace'”的成员

在向H.265的测试软件HM16.0中配置boost的时候,发现 include &lt;boost/cstdint.hpp&gt;的时候总是会报错:错误 11 error C2039: “int_fast16_t”: 不是“`global namespace'”的成员 D:\Program Files\Caffe\VSContact\boost_1_58_0\boost\cstdint.hpp ...

flyerene的博客 1万+

Springboot 2.7+解决跨域问题,到底是在SpringBoot中添加拦截器还是修改Nginx配置

跨域问题是在前后端分离的情况下一个非常常见的问题,通常添加一个跨域拦截器就可以解决,但是在后台添加后还是出现跨域问题,到底是配置错误还是哪里出了问题?本文将基于 SpringBoot 2.7 从多种角度解决跨域问题。

Mrqiang9001 2153

国际项目投标那些事(三)海外项目招标文件的组成

以一个实际的项目作为例子,是我2020年初投的一个东南亚国家的水厂的竞争性投标。这个投标的招标基于FIDIC yellow book (Design and Build) 合同模板。 海外项目的招标一般是有专门的咨询公司(consulting engineer)写招标文件,有的咨询公司非常专业,对于技术、合同、业绩的要求非常细致。 我这个项目的招标文件共5册 400多页(全英文),附件26册将...

WTSolutions的博客 2004

Javaweb_Filter 过滤器过滤拦截多个Servlet文件资源_创建虚拟目录实现过滤拦截

Javaweb 通过创建虚拟目录实现对多个Servlet文件资源的过滤拦截 最近在开发一个web模拟平台时要实现对指定的几个Servlet资源进行过滤拦截,但是在同一个包下还有其他过滤器要过滤的资源,拆开另建一个包反而让结构上不规范,这时就可以通过创建虚拟目录的方式,通过对一个虚拟目录的过滤实现对多个Servlet文件资源的过滤拦截。 所谓虚拟就是我们实际上不存在,但是在计算机编译时会识别为存在的...

LW_Hadoop的博客 1612

GAMES104:02引擎架构分层-学习笔记

用户层工具层(Tool Layer):编辑器、工具界面功能层(Function Layer):渲染Rendering、动画Animation、物理Physics、相机Camera和实现游戏性的脚本Script、状态机FSM、AI等功能模块资源层(Resource Layer):各类图片、动画、音频资源加载核心层(Core Layer):核心功能如内存管理、容器分配、数据计算、多线程处理等平台层(Platform Layer):对接不同游戏平台、主机和硬件。

噗噗噗的博客 1268

STM32duino LSM6DSO驱动库:低功耗IMU工程化实践

惯性测量单元(IMU)是智能终端与工业设备实现运动感知的核心传感器,其性能关键在于数据精度、实时响应与系统功耗的协同优化。LSM6DSO作为集成加速度计与陀螺仪的六轴MEMS器件,依托片上有限状态机(FSM)和机器学习核心(MLC),支持自由落体检测、计步器、6D方向识别等硬件自治功能,显著降低主控CPU负载。在STM32平台下,通过深度耦合HAL/LL库、显式引脚管理、DMA加速SPI传输及EXTI中断协同,可实现亚毫秒级事件响应与微安级待机功耗。本文聚焦STM32duino生态中LSM6DSO驱动的工程

weixin_36304957的博客 551

Java跨域问题

Bean// 1.创建 CORS 配置对象// 支持域// 是否发送 Cookie// 支持请求方式// 允许的原始请求头部信息// 暴露的头部信息// 2.添加地址映射// 3.返回 CorsFilter 对象}}

weixin_37672801的博客 2481

QNX侧触摸屏(TP)Bringup流程与源码深度解析

QNX侧TP Bringup的核心在于构建。

QQ_778132974的博客 477

Web的三大组件——Filter

概述 Filter过滤器:可以拦截浏览器的一切请求,做一些业务处理,应用场景例如:登录验证、统一网站编码、敏感字符过滤 快速入门 XML配置, 编写Java类,实现filter接口 配置web.xml 注解配置 工作原理 使用细节 生命周期 指的是一个对象从创建到销毁的一个过程 创建:服务器启动,项目加载,创建filter对象,执行init方法 运行(过滤拦截):用户访问被拦截目标资源时,执行...

等不到的晴天的博客 622

AgentScope Java 2.0 项目实战:教你完整搭建企业级多租户AI数据分析Agent平台

本文详细讲解如何从零开始构建一个企业级多租户AI数据分析Agent平台(agentscope-dataagent)。涵盖项目的环境准备、项目骨架搭建、后端15个核心模块开发(认证授权、Agent网关、会话管理、SSE流式聊天、能力市场、Webhook通道、Docker沙箱等)、前端完整开发(路由守卫、SSE流式读取、28个页面组件)、内置资源定义、构建打包、测试验证及单机/Docker/分布式部署全流程。

program哲学 597

STM32G0/G4电机控制中三角函数与浮点运算优化实战

三角函数(sin/cos)和浮点运算是电机矢量控制(FOC)的核心基础,直接影响Clark/Park变换、SVPWM及观测器的实时性与精度。在资源受限的MCU上,标准math.h库因无硬件FPU支持而引发严重时序抖动,导致电流环延迟、转矩脉动增大甚至系统复位。通过硬件加速(如STM32G4的CORDIC协处理器)或定制化定点算法(如STM32G0的查表+线性插值),可将sin/cos计算从数十微秒压缩至1–3 μs量级,提升30倍以上效率。该方案广泛适用于BLDC/PMSM驱动、伺服控制及高动态响应嵌入式运

weixin_35751412的博客 109

Filter如何拦截请求? 【Servlet高级】

如果多个Filter程序都对同一个URL进行拦截,那么这些Filter就会组成一个Filter链(也称过滤器链)。熟悉Web开发中常用知识如 HTML5、CSS3、JavaScript、BootStrap、jQuery等掌握JavaWeb开发核心技术 Servlet、Listener、Filter 等熟悉Linux服务器,并安装开发常用软件Tomcat、 MySQL、Nginx等掌握同步及异步操作的JavaWeb开发,具备B/S结构软 件开发能力,完成基本的JavaWeb项目。图14-6 Filter链。

Blue92120的博客 1110

生信分析进阶14 - 从GTF文件提取基因、转录本、TSS和TSE

从GTF文件提取基因、转录本、TSS和TSE

LittleComputerRobot的博客 677

java解决限制访问指定url

前言 在web项目交付阶段,很多交付的小伙伴们会面临的一个问题就是安全漏洞扫描,关于安全漏洞问题,可以分为很多种,但从扫描者的角度,一旦他们认为你的后端服务接口暴露的太多,或过于明显,或没有前置的安全措施(通过登录的方式)就能拿到后台的数据,这样显然是不合理的,一旦扫出这样的接口,那么面临的一个问题就是,解决接口暴露的问题 关于这个问题,其实说起来,还是跟系统在一开始的规划设计阶段的安全考虑不够完备,比如你的后台项目是否需要做必要的鉴权,是否集成了第三方安全框架等,如果在项目框架搭建之初,就能考虑到这些问题

congge 8304

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

Spring MVC拦截器和跨域请求

Spring MVC拦截器和跨域请求

qq_53317005的博客 9万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JAVA Java 解决跨域问题

JAVA | Java 解决跨域问题 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一、使用Filter方式进行设置 二、继承 HandlerInterceptorAdapter 三、实现 WebMvcConfigurer 四、使用Nginx配置 五、使用 @CrossOrgin 注解 Spring Cloud Gateway 跨域配置 引言 我们在开发过程中经常会遇到前后端分离而导致的跨域问题,导致无法获取返回结果。跨域就像分离前端和

lidongkui123的博客 2万+

SSH允许跨域访问拦截器配置

1. 添加拦截器类AjaxFilter import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet...

hello__java的博客 3786

【SpringMVC】| 拦截器 | 跨域请求 | 原理详解 | 代码实操

Spring MVC 是 Spring 框架的一部分,主要用于构建 Web 应用程序和 RESTful 服务。Spring MVC 拦截器是一种在请求到达控制器之前或响应返回视图之前对请求进行处理的机制。它可以对请求进行拦截和修改,比如在请求中添加一些头信息、记录请求日志、进行身份验证等。跨域请求则是指在浏览器中发起的与当前页面所在域名不同的请求,例如从前端的一个页面向后端的另一个域名发起 AJAX 请求。为了保证安全性与可控性,通常需要对跨域请求进行一些限制和处理。

狮子也疯狂的博客 2226

JAVA WEB之跨域问题以及解决方案(上)

一、产生跨域的原因 我们在项目开发中,经常会使用前后端分离的技术,把前端代码和后端代码分别部署到不同的服务器上,这样在数据交互的时候,由于浏览器的同源策略,就会产生跨域问题。 同源策略,它是由Netscape提出的一个著名的安全策略。 现在所有支持JavaScript 的浏览器都会使用这个策略。 所谓同源是指,域名,协议,端口相同。 如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,...

8-0416 1070

拦截器解决跨域问题

解决跨域问题的方法挺多的。该方法只是本人用过,做个记录。 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework...

业精于勤,荒于嬉 5123

SpringBoot解决跨域访问及一致性Session问题

解决问题 前后端分离项目背景下,跨域访问及一致性session问题(是否同一用户)。 ps:以前做的项目都是前、后端部署在一个tomcat容器中,不会涉及到跨域访问以及一致性session问题。随着前后端分离架构的流行,前、后端部署在不同服务器等都会涉及到跨域等问题。 同源策略 同源策略是浏览器保证安全的基础,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页同...

真正的大师,永远怀着一颗学徒的❤ 6271

通过Java来解决Web前段跨域访问问题

当我使用js的ajax代码去访问另外一台机器shang

lb891014的专栏 1563

jeesite 前后端分离 跨域 拦截器

最近用jeesite作为后端与前端进行交互,出现了跨域的问题,度娘搜了一大堆方法, 记录下最终解决方案 备忘。 1、通过web.xml增加跨域拦截器cors <!-- 前后端分类跨域解决 --> <filter> <filter-name>cors</filter-name> <filter-class...

wcnmbbbb的博客 2248

Java 中的跨域问题

跨域问题源于浏览器的同源策略,限制不同源(协议/域名/端口组合不同)的资源访问。在Java开发中主要出现在前后端分离、微服务调用和第三方API集成场景。解决方案主要有:1)Spring Boot使用@CrossOrigin注解或通过WebMvcConfigurer全局配置;2)Servlet应用通过Filter添加CORS响应头;3)Spring Security需配置CorsConfigurationSource并协调CSRF策略。关键配置项包括Access-Control-Allow-Origin(允许

qq_74152460的博客 2487

SpringBoot解决跨域请求拦截

前言 同源策略:判断是否是同源的,主要看这三点,协议,ip,端口。 同源策略就是浏览器出于网站安全性的考虑,限制不同源之间的资源相互访问的一种政策。 比如在域名https://www.baidu.com下,脚本不能够访问https://www.sina.com源下的资源,否则将会被浏览器拦截。 注意两点: 1.必须是脚本请求,比如AJAX请求。 但是如下情况不会产生跨域拦截 ...

javarrr的博客 1489

Java Web应用中支持跨域请求

由于工程合作开发的需要,后台的应用要能支持跨域访问,但是在这个跨域访问“时好时坏”,我们这帮屌丝所知道的就是加上两个jar包,然后声明一下Filter,感觉很简单的有没有!!感觉自己很牛X有没有!!全是幻觉!!要不然怎么会时好时坏!!为了深入了解这个问题,决定写这篇文章总结一下。

lmy86263的博客 2万+
上一篇: Linux目录结构和常用命令
下一篇: Spring AOP 中@Pointcut的用法
冷down
博客等级 码龄10年 11粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值