Java跨域配置
2022/1/3 17:07:40
本文主要是介绍Java跨域配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java跨域配置
XML 配置全局
如果整个项目所有方法都可以访问,则可以这样配置
<mvc:cors> <mvc:mapping path="/**" /> </mvc:cors> /** 其中* 表示匹配到下一层 ** 表示后面不管有多少层,都能匹配。
请求路径有/cross/,方法示例如下:
<mvc:cors> <mvc:mapping path="/cross/*"/> </mvc:cors>
上面表示有/cross/路径的请求都支持跨域访问,也可以增加其它的,如下:
<mvc:cors> <mvc:mapping path="/cross/**" allowed-origins="" max-age="2500"/> <mvc:mapping path="/domain/**"/> </mvc:cors>
详细配置:
<mvc:cors> <mvc:mapping path="/**" allowed-origins="http://127.0.0.1:5500" allowed-methods="POST,GET,OPTIONS,DELETE,PUT,PATCH" allowed-headers="Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With" allow-credentials="true"/> </mvc:cors>
<!--配置跨域--> <mvc:cors> <!--path:允许跨域请求的映射地址:/api/**--> <!--allowed-origins:指定允许跨域请求的路径,*表示任意所有,也显式指定值,值可以有多个,如:http://192.168.2.75,https://www.test.com--> <!--allowed-methods:指定允许跨域的请求方式,值可以有多个,用逗号隔开,如:get,post,put,delete,options--> <!--allowed-headers:指定允许跨域的请求头,值可以有多个,用逗号隔开--> <!--allow-credentials:是否允许客户端请求时携带资源,如cookie,值默认false,表示不允许--> <!--值为*都是表示任意,不限制--> <mvc:mapping path="/**" allowed-origins="*" allowed-methods="*" allowed-headers="*" allow-credentials="true"/> <!--实际开发中不建议使用*代码所有,不安全--> <!--<mvc:mapping path="/**" allowed-origins="http://192.168.2.75,http://www.test.com" allowed-methods="GET,POST"/>--> </mvc:cors>
实际开发中:
allowed-origins:一般都会明确指定客户端的url
allowed-methods:值一般都为"get,post,put,delete,options"
通过注解的方式允许跨域
在Controller类或其方法上加@CrossOrigin注解,来使之支持跨域
@CrossOrigin(origins = "*")
其中origins为CrossOrigin的默认参数,即跨域来源,* 即任何来源,也可以是其他域名。即可以以以下形式:
@CrossOrigin(origins="http://127.0.0.1:5500/")
SpringBoot的配置方式
@Configuration public class MvcConfiguration { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**")//指定跨域映射地址 .allowedOrigins("http://127.0.0.1:5500/")//实际开发中需要指定客户端具体url .allowedMethods("GET","POST","PUT", "DELETE","OPTIONS") .allowedHeaders("*")//设置允许的请求头 //设置需要暴露给客户端获取的响应头内容 // .exposedHeaders("access-control-allow-headers", // "access-control-allow-methods", // "access-control-allow-origin", // "access-control-max-age", // "X-Frame-Options") .allowCredentials(true)//设置是否允许客户端跨域携带验证数据,如Cookie值 .maxAge(3600);//跨域请求超时 } }; } }
可能出现的问题:500错误
错误配置:
<mvc:cors> <mvc:mapping path="/**" allowed-origins="*" // 此处变化 allowed-methods="POST,GET,OPTIONS,DELETE,PUT,PATCH" allowed-headers="Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With" allow-credentials="true"/> </mvc:cors>
修改为:
<mvc:cors> <mvc:mapping path="/**" allowed-origins="http://127.0.0.1:5500" allowed-methods="POST,GET,OPTIONS,DELETE,PUT,PATCH" allowed-headers="Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With" allow-credentials="true"/> </mvc:cors>
这篇关于Java跨域配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-01成为百万架构师的第一课:设计模式:Spring中的设计模式
- 2025-01-01一个基于注解驱动的可视化的DDD架构-超越COLA的设计
- 2025-01-01PlantUML 时序图 基本例子
- 2025-01-01plantuml 信号时序图
- 2025-01-01聊聊springboot项目如何优雅进行数据校验
- 2024-12-31自由职业者效率提升指南:3个时间管理技巧搞定多个项目
- 2024-12-31适用于咨询行业的项目管理工具:提升跨团队协作和工作效率的最佳选择
- 2024-12-31高效协作的未来:2024年实时文档工具深度解析
- 2024-12-31商务谈判者的利器!哪 6 款办公软件能提升春节合作成功率?
- 2024-12-31小团队如何选择最实用的项目管理工具?高效协作与任务追踪指南