SpringBoot常用配置类——跨域配置
一、什么是跨域
跨域是指在网页中通过 JavaScript 请求不同域名、协议或端口的资源。由于浏览器出于安全考虑,通常会限制这种请求,称为同源策略(Same-Origin Policy)。
同源策略要求请求的资源与当前页面必须具有相同的协议、域名和端口。
如我们页面当前地址为 http://www.testAAA.com/
,请求地址为http://www.testBBB.com/
,这种情况下就会因为域名不同造成跨域,同理 协议 和 端口 不同也会造成跨域。
如果没有适当的跨域解决方案(如 CORS,Cross-Origin Resource Sharing),浏览器会阻止这个请求,并在控制台中抛出错误,提示这是一个跨域请求被阻止的情况。
二、跨域配置
解决跨域的方法有好几种,这里只说服务器后台解决跨域的方式。
1、局部跨域
在我们需要跨域的方法或类上添加 @CrossOrigin
注解以实现跨域。
@RestController
@CrossOrigin(origins = "*")
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
}
2、全局跨域处理
新建配置类,通过实现 WebMvcConfigurer
接口的方式来实现全局的跨域配置。
@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 配置跨域支持
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") //允许的路径,即我们那些接口可以跨域
.allowedOrigins("*") //允许的源
.allowCredentials(true) //是否允许发送凭证
.allowedMethods("GET","POST","PUT","DELETE") //指定允许的 HTTP 方法
.maxAge(3600 * 24); //预检请求有效期
}
参考链接:
什么是跨域?跨域解决方法
SpringBoot---WebMvcConfigurer详解
详解WebMvcConfigurer接口
本文作者:香酥豆腐皮
本文链接:https://www.cnblogs.com/Snowclod/p/18345070
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步