springboot允许CORS配置

在前后端分离的项目中,遇到跨域问题可以借助nginx进行反向代理。对于开发环境,如果前端是H5且未使用框架,通过SpringBoot配置CORS是一种简单方法。提供的代码展示了如何在SpringBoot中设置允许所有源、方法和头的CORS策略。

        在前后端分离项目中,生产环境和测试环境可以通过nginx等做反向代理解决跨域资源共享问题;开发环境中,如果是使用vue或者angular框架也可以通过设置proxy解决cors,但如果前端是H5且没有用框架,通过添加springboot的配置就比较简单了。具体代码如下:

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("GET", "POST")
                .allowCredentials(true)
                .allowedOrigins("*")
                .maxAge(172800L);
    }
}

### 如何在 Spring Boot配置 CORS 解决跨域问题 #### 方法一:使用 `@CrossOrigin` 注解 可以直接在控制器类或特定方法上应用 `@CrossOrigin` 注解来允许来自指定源的跨域请求。这种方式适合于细粒度控制,即针对某个接口单独设置跨域规则。 ```java import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MyController { @CrossOrigin(origins = "http://example.com") @GetMapping("/greeting") public String greeting() { return "Hello, World!"; } } ``` 这种方法简单直观,适用于小型应用程序中的单个API端点[^3]。 #### 方法二:全局配置 CORS 政策 为了简化开发并统一管理整个Web应用的CORS政策,可以采用全局方式定义CORS行为。这通常是在一个实现了 `WebMvcConfigurer` 接口的配置类里完成的: ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:8081") .allowedMethods("*") .allowedHeaders("*"); } } ``` 上述代码片段展示了如何通过覆盖默认的 `addCorsMappings()` 方法来注册自定义的CORS映射规则。此法能有效地减少重复劳动,并保持项目的整洁性[^4]。 当涉及到具体的IP地址而非域名时,需要注意的是,添加到 `.allowedOrigins()` 的字符串应当精确匹配客户端发起请求的实际URL模式,包括协议、主机名和端口号。例如,如果前端服务运行在一个具有静态IP地址的服务器上,则应按照实际的服务路径格式化输入,像这样 `"http://192.168.3.16:9999"` 而不是带有额外子路径的形式 `"http://192.168.3.16:9999/foodie-shop"` [^5].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值