目录
一、为什么会存在跨域请求?
二、跨域请求的流程?
三、什么情况下会触发CROS机制?
四、如何解决跨域请求导致的问题?
一、为什么会存在跨域请求?
跨域请求是因为浏览器的同源策略引起的。同源策略是浏览器的一种安全策略,用于保护用户数据和减少潜在的安全风险,安全:浏览器只允许加载本域下面的资源(本域:协议、域名、端口)
二、跨域请求的流程?
当进行跨域请求的时候,浏览器先发送一个大头兵请求(也就是预检请求OPTTIONS,携带着真实请求的信息,包括请求方法、数据等),用于询问服务端中是否支持这个跨域请求,如果这个请求被允许,那么客户端发送真实请求(可通过打断点看具体过程)
三、什么情况下会触发CROS机制?
你发送的这个请求可能会对服务器的数据产生副作用,意思就是写操作。
GET以外的请求都会触发CORS机制
四、如何解决跨域请求导致的问题?
使用cors头部,在服务器端中配置cors头部,允许指定的域名或者所有域名访问资源,可以设置允许的源,这是对全局的一个设置
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Override //进行请求的配置public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**") // 匹配所有路径,/*是不包含子路径,/**包含父路径和子路径.allowedHeaders("*") // 任意的请求头.allowedOrigins("*") // 任意域名.allowedMethods("GET","POST","PUT","DELETE","OPTIONS") // 允许这些请求进行一个跨域的请求.maxAge(3600);}
}