Spring Boot 跨域
一:使用@CrossOrigin注解
@CrossOrigin @RequestMapping(value = "/get") public HashMap<String, Object> get(@RequestParam String name) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("title", "hello world"); map.put("name", name); return map; }
二:配置跨域类
import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; import java.util.Collections; /** * 跨域请求过滤器 * */ @Configuration public class OriginFilter { @SuppressWarnings("unchecked") @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); corsConfiguration.setAllowedOrigins(Collections.singletonList(CorsConfiguration.ALL)); corsConfiguration.setAllowedHeaders(Collections.singletonList(CorsConfiguration.ALL)); corsConfiguration.setAllowedMethods(Collections.singletonList(CorsConfiguration.ALL)); corsConfiguration.addExposedHeader("Authorization"); source.registerCorsConfiguration("/**", corsConfiguration); FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); bean.setOrder(Ordered.HIGHEST_PRECEDENCE); return bean; } }