Spring Boot的CORS支持。
CORS(Cross-Origin Resource Sharing) ,全称“跨域资源共享”。是由W3C制定的一种跨域资源共享技术的标准,其目的是为了解决前端的跨域请求。在Java EE 开发中,最常见的前端跨域请求解决方案是JSONP,但是JSONP只支持GET请求,这是一个很大的缺陷,而CORS则支持多种HTTP请求方法。
springboot模拟实现
1,创建springboot工程,添加web依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2,创建测试的controller控制器。
package com.example.springboot5.test;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/controller")
public class ListController {
@PostMapping("/")
public String addList(String str){
return "receive:"+str;
}
@DeleteMapping("/{str}")
public String deleteList(@PathVariable String str){
return String.valueOf(str);
}
@PathVariable映射URL绑定的占位符,这是Spring3.0的新功能。可以将URL中占位
符参数绑定到控制器处理方法的入参中。
配置跨域
1,第一种方式:方法上添加注解,如下图所示:
说明:
@CrossOrigin中的value表示支持的域的请求是支持跨域的。maxAge表示请求的有效期。allowedHeaders表示允许的请求头。
2,第二种方式,全局配置:
@Configuration
public class CrossConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/controller/**")
.allowedHeaders("*")
.allowedMethods("*")
.maxAge(20000)
.allowedOrigins("*");
}
}