目录
什么是跨域请求
跨域请求指:当前发起请求的域与该请求指向的资源所在的域不同时的请求。这里的域指的概念: “协议 + 域名 + 端口号” 均相同,那么就是同域。
- 现跨域请求常出现在前后端分离项目当中。
浏览器的同源策略
同源策略(Same origin policy)是一种约定,它是浏览器最核心也是最基本的安全功能。出于安全考虑,浏览器限制从JS脚本发起的跨源HTTP请求
因为同源策略的限制,不同协议(http、https)、域名或者端口无法直接进行JS ajax请求。 同源策略只针对于浏览器端,浏览器一旦检测到请求的结果的域名不一致后,会堵塞请求结果。这里注意,跨域请求是可以发去的,但是请求响应response被浏览器堵塞了。
解决方案
添加一个config配置类
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedMethods("GET","POST","PUT","OPTIONS","DELETE","PATCH")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
参考:
[1]: https://blog.csdn.net/ppxin/article/details/94717173