对于前后端分离项目,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。针对跨域问题,常用的解决方案是使用jsoup,但是jsoup方式存在一些不足,例如只能通过get请求方式来传递参数,当然还有其它的不足之处。
在SpringBoot中可以通过CORS(Cross-Origin Resource Sharing,跨域资源共享)协议来解决跨域问题,CORS是一个W3C标准,它允许浏览器向不同资源的服务器发出XmlHttpRequest请求,然后使用Ajax进行请求访问。Spring-MVC 4.2版本后增加了对CORS的支持,具体代码如下所示。
@Configuration
public class MyWebAppConfigure extends WebMvcConfigurerAdapter{
@Override
public void addCorsMappings(CorsRegistery registry){
registry.addMapping("/**")
.allowedOrigins("http://192.168.1.97")
.allowedMethods("GET","POST")
.allowCredentials(false).maxAge(3600);
}
}
以上是针对全局的配置,如果想要更加精确的配置,可以在Controller类中使用@CrossOrigin注解,具体代码如下所示。
@CrossOrigin(origins = "http://192.168.1.97:8080",maxAge = 3600)
@RequestMapping("user")
@RestController
public class UserController{
}