Spring Boot Security No 'Access-Control-Allow-Origin' header is present on the requested resource Error

前端 未结 1 2049
挽巷
挽巷 2020-12-18 01:46

I\'m building a Spring Boot application with Spring Security. I have a delete functionality which is done through AJAX request using JavaScript\'s Fetch API. The functionali

相关标签:
1条回答
  • 2020-12-18 02:33

    You can allow your all header by implementing Filter.

    Try with this:

    @Component
    @Order(Ordered.HIGHEST_PRECEDENCE)
    public class CORSFilter implements Filter {
    
    
        @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-Methods", "*");
            response.setHeader("Access-Control-Max-Age", "3600");
            response.setHeader("Access-Control-Allow-Headers", "*");
            //response.setHeader("Access-Control-Expose-Headers","yourCustomHeaderIfExist");
    
            if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
                response.setStatus(HttpServletResponse.SC_OK);
            } else {
                chain.doFilter(req, res);
            }
        }
    
        @Override
        public void init(FilterConfig filterConfig) {
        }
    
        @Override
        public void destroy() {
        }
    
    }
    

    And add @CrossOrigin annotation before your controller.

    You can also try with add this bean:

     @Bean
            public WebMvcConfigurer corsConfigurer() {
                return new WebMvcConfigurerAdapter() {
                    @Override
                    public void addCorsMappings(CorsRegistry registry) {
                        registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST","PUT", "DELETE");
    
    
                    }
                };
            }
    
    0 讨论(0)
提交回复
热议问题