JAVAWEB前后分离–跨域
什么是跨域:
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的,这种不安全也就是CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
跨域:特征: 浏览器,JavaScript 正常http非浏览器调用可以支持。
JavaWeb工程如何解决跨域 : 此处默认spring环境 springmvc4.2版本增加了对cors的支持。(springboot同样生效)
跨域全局配置
/**
* 跨域全局配置
*/
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter
{
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("*") //允许向该服务器提交请求的URI,*表示全部允许 例如:allowedOrigins("http://192.168.1.97,http://192.168.1.98")
.allowedMethods("*") //允许提交请求的方法,*表示全部允许 例如:allowedMethods("GET", "POST")
.allowCredentials(false) //允许Cookie跨域 false:不允许
.maxAge(3600); //预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
}
}
跨域局部配置 @CrossOrigin这个注解在controller类中使用。
@CrossOrigin(origins = "http://192.168.1.97:8080", maxAge = 3600)
@RequestMapping("index")
@RestController
public class IndexController{