首页 文章

错误:请求的资源上没有'Access-Control-Allow-Origin'标头 . 即使包括CORS支持

提问于
浏览
0

我试图在 Spring 季启动时编写一个Api,并尝试使用我编写的前端来访问它 . 我添加了Cors支持,但我仍然收到此错误:*

无法加载http:// localhost:8080 /:请求的资源上没有“Access-Control-Allow-Origin”标头 . 因此不允许Origin'http:// localhost'访问 .

我的Cors在主文件中的支持是:

@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/greeting-javaconfig").allowedOrigins("*");
            }
        };
    }

我正在使用apache服务器前端 .

sopmeone可以帮我解决这个问题吗?

1 回答

  • 0

    要在spring-boot中启用CORS,您需要在spring-boot应用程序中添加以下过滤器类 .

    @Component
    @Order(Ordered.HIGHEST_PRECEDENCE)
    public class SimpleCorsFilter implements Filter {
    
    public SimpleCorsFilter() {
    }
    
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
        response.setHeader("Access-Control-Expose-Headers", "WWW-Authenticate");
    }
    
    @Override
    public void init(FilterConfig filterConfig) {
    }
    
    @Override
    public void destroy() {
    }
    }
    

相关问题