117.info
人生若只如初见

springboot配置跨域的方法是什么

Spring Boot配置跨域的方法有以下几种:

  1. 使用注解:在Controller类或者方法上使用@CrossOrigin注解来配置跨域访问。可以通过设置origins属性指定允许访问的域名,通过设置methods属性指定支持的HTTP方法,通过设置maxAge属性指定响应的最大生存时间(单位为秒)。

    @RestController
    @RequestMapping("/api")
    @CrossOrigin(origins = "http://example.com", methods = {RequestMethod.GET, RequestMethod.POST}, maxAge = 3600)
    public class MyController {
        // ...
    }
    
  2. 使用WebMvcConfigurer:通过实现WebMvcConfigurer接口,重写addCorsMappings方法来配置全局的跨域访问。可以通过调用addMapping方法指定允许访问的路径,通过调用allowedOrigins方法指定允许访问的域名,通过调用allowedMethods方法指定支持的HTTP方法,通过调用maxAge方法指定响应的最大生存时间(单位为秒)。

    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/api/**")
                    .allowedOrigins("http://example.com")
                    .allowedMethods("GET", "POST")
                    .maxAge(3600);
        }
    }
    
  3. 使用Filter:通过自定义一个Filter来处理跨域请求,设置响应的Access-Control-Allow-OriginAccess-Control-Allow-MethodsAccess-Control-Max-Age响应头。

    @Component
    public class CorsFilter implements Filter {
        @Override
        public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
            HttpServletResponse response = (HttpServletResponse) res;
            response.setHeader("Access-Control-Allow-Origin", "http://example.com");
            response.setHeader("Access-Control-Allow-Methods", "GET, POST");
            response.setHeader("Access-Control-Max-Age", "3600");
            chain.doFilter(req, res);
        }
    }
    

以上是Spring Boot配置跨域的几种方法,根据实际需求选择适合的方法进行配置。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe887AzsLAgRTAVU.html

推荐文章

  • springboot如何获取自定义注解类

    在Spring Boot中,可以通过反射来获取自定义注解类。
    首先,需要使用@ComponentScan注解来扫描注解所在的包。例如,如果自定义注解类在com.example.annotat...

  • springboot组件有哪些功能

    Spring Boot是一个用于构建独立的、可扩展的、生产级别的Java应用程序的开源框架。它提供了一些重要的组件和功能,包括: 自动配置:Spring Boot通过自动配置大量...

  • springboot调用外部接口超时如何处理

    在Spring Boot中,可以使用如下方法处理调用外部接口超时的情况: 设置超时时间:可以通过配置文件或代码设置调用外部接口的超时时间。在配置文件中,可以使用sp...

  • springboot线程池参数怎么配置

    在Spring Boot中,可以通过在application.properties或application.yml中配置以下参数来配置线程池: spring.task.execution.pool.core-size:线程池核心线程数,...

  • Java怎么读取本地文件内容

    在Java中,可以使用java.io包中的File类和BufferedReader类来读取本地文件的内容。以下是一个简单的示例代码:
    import java.io.BufferedReader;
    impor...

  • springboot怎么读取yml配置文件

    在Spring Boot中,可以通过使用@ConfigurationProperties注解来读取yml配置文件。
    首先,需要在Spring Boot应用的配置类上添加@ConfigurationProperties注解...

  • linux只保留七天文件怎么配置

    要在Linux上配置文件保留七天,可以使用以下步骤: 打开终端,使用root用户或具有sudo权限的用户登录。 找到要配置的目录,例如/var/log。 编辑logrotate配置文件...

  • shell怎么循环读取目录下的文件名

    在shell脚本中,可以使用for循环结构来读取目录下的文件名。以下是一个示例代码:
    #!/bin/bash # 指定目录路径
    directory="/path/to/directory" # 循环...