三种解决办法

1、response设置响应头,让返回数据包中的header中增加允许跨域的信息

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");

2、加注解

@CrossOrigin

3、CORS全局配置,实现WebMvcConfigurer 

  • 新建跨域配置类:CorsFilter.java
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 CorsFilter implements WebMvcConfigurer {

    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")    // 设置允许跨域的路径
                .allowedOrigins("*")    //允许跨域的域名,可以用*表示允许任何域名使用
                .allowCredentials(true)  // 是否允许证书
                .allowedMethods("*")    //允许任何方法(post、get等)
                .maxAge(3600); //缓存持续的最大时间
    }
}

Logo

前往低代码交流专区

更多推荐