侧边栏壁纸
博主头像
DOKI SEKAI博主等级

行动起来,活在当下

  • 累计撰写 114 篇文章
  • 累计创建 38 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

spring设置跨域

君
2024-10-23 / 0 评论 / 0 点赞 / 10 阅读 / 2988 字

如果你想在Spring中允许来自特定域名(比如a.comb.com)的跨域请求,你可以在以下几种方法中进行配置。

1. 使用@CrossOrigin注解

在控制器或方法上配置多个允许的来源:

@CrossOrigin(origins = {"http://a.com", "http://b.com"})
@RequestMapping(value = "getIp")
public String getName(HttpServletRequest request) {
    return IPAddressUtil.getDirectClientIp(request);
}

这个配置会允许来自 http://a.comhttp://b.com 的跨域请求。

2. 全局配置通过WebMvcConfigurer

通过实现WebMvcConfigurer接口进行全局配置,允许a.comb.com进行跨域访问:

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("/**") // 允许的路径
                .allowedOrigins("http://a.com", "http://b.com") // 允许的域
                .allowedMethods("GET", "POST"); // 允许的HTTP方法
    }
}

3. Spring Boot 配置文件

如果你使用Spring Boot,可以在application.propertiesapplication.yml文件中配置CORS:

application.properties中:

spring.mvc.cors.allowed-origins=http://a.com,http://b.com
spring.mvc.cors.allowed-methods=GET,POST

application.yml中:

spring:
  mvc:
    cors:
      allowed-origins: "http://a.com,http://b.com"
      allowed-methods: "GET,POST"

结论

使用以上任何一种方式,你可以允许来自 http://a.comhttp://b.com 的跨域请求。@CrossOrigin 适用于局部方法或控制器,而全局配置(通过WebMvcConfigurer或配置文件)适用于整个应用程序。

0

评论区