1.使用@CrossOrigin注解实现 (1).对单个接口配置CORS
1 @CrossOrigin(origins = {"*"}) 2 @PostMapping("/hello")
3 @ResponseBody
4 public ResultVO hello() {
5 return new ResultVO(1,"成功");
6 }
(2).对某个Controller下的所有接口配置CORS
@CrossOrigin
@Controller
public class HelloController {
}
2.配置全局的CORS
(1)添加配置类
1 package com.yltx.api.config;
2
3 import org.springframework.context.annotation.Bean;
4 import org.springframework.context.annotation.Configuration;
5 import org.springframework.web.cors.CorsConfiguration;
6 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
7 import org.springframework.web.filter.CorsFilter;
8
9 /**
10 * @Author: Hujh
11 * @Date: 2019/5/9 15:49
12 * @Description: Cors跨域配置
13 */
14 @Configuration
15 public class CorsConfig {
16 @Bean
17 public CorsFilter corsFilter() {
18 final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
19 final CorsConfiguration corsConfiguration = new CorsConfiguration();
20 corsConfiguration.setAllowCredentials(true);
21 corsConfiguration.addAllowedOrigin("*");
22 corsConfiguration.addAllowedHeader("*");
23 corsConfiguration.addAllowedMethod("*");
24 urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
25 return new CorsFilter(urlBasedCorsConfigurationSource);
26 }
27 }
(2)添加配置类
1 import org.springframework.context.annotation.Configuration;
2 import org.springframework.web.servlet.config.annotation.CorsRegistry;
3 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
4
5 /**
6 * @Author: Hujh
7 * @Date: 2019/5/9 16:18
8 * @Description:
9 */
10 @Configuration
11 public class WebMvcConfig extends WebMvcConfigurationSupport {
12 @Override
13 public void addCorsMappings(CorsRegistry registry) {
14 registry.addMapping("/**")
15 .allowedOrigins("*")
16 .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
17 .maxAge(3600)
18 .allowCredentials(true);
19 }
20 }
注:添加配置类方法取一即可.
|