spring boot 3种方式设置跨域

作者: 风中吃西瓜 | 来源:发表于2018-08-24 22:29 被阅读1190次

    第一种 通过注解 @CrossOrigin(origins = "*", maxAge = 3600)

    import org.springframework.web.bind.annotation.CrossOrigin;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    @CrossOrigin(origins = "*", maxAge = 3600)
    public class FileController {
    
    
    }
    

    第二种 Filter 方式

    import javax.servlet.*;  
    import javax.servlet.http.HttpServletResponse;  
    import java.io.IOException;  
       
    @Component  
    public class CorsFilter implements Filter {  
      
        final static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CorsFilter.class);  
     
        public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {  
            HttpServletResponse response = (HttpServletResponse) res;  
            response.setHeader("Access-Control-Allow-Origin", "*");  
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT,OPTIONS, DELETE");  
            response.setHeader("Access-Control-Max-Age", "3600");  
            response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");  
            chain.doFilter(req, res);  
        }  
        public void init(FilterConfig filterConfig) {}  
        public void destroy() {}  
    }  
    

    第三种 CorsConfig

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.cors.CorsConfiguration;
    import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
    import org.springframework.web.filter.CorsFilter;
    
    /***
     * 跨域设置
     */
    @Configuration
    public class CorsConfig {
    
        private CorsConfiguration buildConfig() {
            CorsConfiguration corsConfiguration = new CorsConfiguration();
            corsConfiguration.addAllowedOrigin("*"); 
            corsConfiguration.addAllowedHeader("*"); 
            corsConfiguration.addAllowedMethod("*"); 
            return corsConfiguration;
        }
    
        @Bean
        public CorsFilter corsFilter() {
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            source.registerCorsConfiguration("/**", buildConfig());
            return new CorsFilter(source);
        }
    }
    

    相关文章

      网友评论

      本文标题:spring boot 3种方式设置跨域

      本文链接:https://www.haomeiwen.com/subject/wgziiftx.html