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

问题描述 投票:0回答:1

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

无法加载http://localhost:8080/:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,'http://localhost'原产地不允许进入。

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

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

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

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

apache rest spring-boot web cors
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() {
}
}
© www.soinside.com 2019 - 2024. All rights reserved.