【求助】爲什麼springboot跨域配置都沒效果?

springboot + gradle + react 項目跨域配置都設置了,網上的各種方式也試了,還是不行,有知道原因的嗎?

springboot版本: 2.1.9

 

我用過的配置有如下幾種,全部都沒有效果:

第一種:無效

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Autowired
    private Environment env;

    @Override
    public void addCorsMappings(CorsRegistry registry) {

        //設置允許跨域的路徑
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedMethods("*")
                .allowedHeaders("*")
                .maxAge(3600);
    }
}

第二種:註解上加@CrossOrigin 依然無效

@Api("CommonController相關API")
@RestController
@CrossOrigin(origins = {"http://localhost:3000"})
public class CommonController {

第三種:

@Configuration
public class CorsConfig implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;
        String path = request.getServletPath();

        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "3600");

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

        if (request.getMethod().equals("OPTIONS")) {
            response.setStatus(HttpServletResponse.SC_OK);
        }else{
            chain.doFilter(request, res);
        }
    }

    @Override
    public void destroy() {

    }


}

無論我把 Access-Control-Allow-Origin 設置爲“*”還是“http://localhost:3000”, 都沒有效果,

到底哪裏出錯了呢?????

求大神講解。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章