跨域资源共享(CORS,Cross-Origin Resource Sharing)是浏览器的一种安全机制,用于限制从不同源(即不同域、协议或端口)访问资源。为了使跨域请求能够成功,服务器需要通过设置 CORS 相关的 HTTP 响应头来允许来自其他域的请求。
而在编写spring boot项目时候,已经后端中设置了全局跨域
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000") // 允许来自 localhost:3000 的请求
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的 HTTP 方法
.allowedHeaders("*"); // 允许的请求头
}
}
但仍然会提示跨域问题,这时候我们可以检查一下依赖文件pom.xml没看是否下载了Spring Security相关依赖,因为Spring Security 默认启用了安全配置,其中包括对 HTTP 请求的访问控制,这可能会导致跨域请求被拒绝。具体来说,Spring Security 会阻止一些不符合安全策略的请求,特别是跨域(CORS,Cross-Origin Resource Sharing)请求。所以,当删除了相关依赖之后,问题就解决了。