1.使用 @CrossOrigin 注解 作用于controller 方法上 示例如下
@RestController
@RequestMapping("/account")
public class AccountController {@CrossOrigin@GetMapping("/{id}")public Account retrieve(@PathVariable Long id) {// ...}@DeleteMapping("/{id}")public void remove(@PathVariable Long id) {// ...}
}
默认情况下,@CrossOrigin允许:
所有的源。
所有请求。
控制器方法映射到的所有HTTP方法
2. 全局配置 示例代码如下
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**").allowedOrigins("https://domain2.com").allowedMethods("PUT", "DELETE").allowedHeaders("header1", "header2", "header3").exposedHeaders("header1", "header2").allowCredentials(true).maxAge(3600);// Add more mappings...}
}