Springboot解决跨域问题
什么是跨域?由于浏览器的安全性限制,不允许前端页面访问协议不同、域名不同、端口号则会出报.错误。此类问题我们一般是在接口提供方,即服务端解决。
·
说明
什么是跨域?由于浏览器的安全性限制,不允许前端页面访问协议不同
、域名不同
、端口号
不同的http接口,例如我本地创建一个html,里面写一个ajax请求访问我服务器springboot应用提供的接口:192.168.56.123:8080/getUserInfo
则会出报 No 'Access-Control-Allow-Origin' header is present on the requested resource
. 错误。
此类问题我们一般是在接口提供方,即服务端解决。
全局配置
在springboot中可以采用多种方式解决跨域问题,例如:可以在类或方法上添加@CrossOrigin
注解。还有一种就是全局配置,全局配置需要添加自定义类实现 WebMvcConfigurer
接口,然后实现接口中的 addCorsMappings
方法。下面是一个简单的样例代码:
- addMapping:表示对哪种格式的请求路径进行跨域处理。
- allowedHeaders:表示允许的请求头,默认允许所有的请求头信息。
- allowedMethods:表示允许的请求方法,默认是 GET、POST 和 HEAD。这里配置为 * 表示支持所有的请求方法。
- maxAge:表示探测请求的有效期
- allowedOrigins 表示支持的域
采用如下配置,直接让所有请求、所有域都支持跨域:
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("*")
.maxAge(1800)
.allowedOrigins("*");
}
}
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
更多推荐
已为社区贡献4条内容
所有评论(0)