跨域问题的产生

浏览器有同源策略,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。

同源是指相同的协议、相同的主机和端口号,不同源是指任意一个不满足即是不同源

跨域问题的解决

cros

cros(cross-origin resource sharing)是由W3C制定的一种跨域资源共享技术标准,目的是解决前端的跨域请求。

后端服务器实现cros接口,从而实现跨域通信。

cros将请求分为两类:简单请求和非简单请求

简单请求

image-20230621200320956

非简单请求

image-20230621200428742

后端springboot配置cros

1
2
3
4
5
6
7
8
9
10
11
12
13
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");//允许跨域访问的路径
.allowedOrigins("*");//允许跨域访问资源
.allowedMethods("POST", "GET", "OPTIONS", "DELETE")//允许请求方法
.amxAge(168000);//预检间隔时间
.allowedHeaders("*");//允许头部设置
.allowCredentials(true);//是否发送cookie

}
}

也可以在表示层加个注解

1
2
3
4
@CrossOrigin
public class UserController {
....
}