要想了解跨域,就先要知道什么是同源策略。
同源策略,它是由Netscape提出的一个著名的安全策略。
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
域:协议+地址(域名或IP)+端口
可以简单的理解为:同源策略是一个安全策略,浏览器只是对同源策略的一种实现。它限制着只有同源的脚本(Javascript)才能调用该源的接口,以保护服务器资源或数据。
最常见的:多个系统前端需要调用另外系统的接口;前后端分开部署。
代码如下
使用如下配置,即可在 "http://localhost:63343", "http://127.0.0.1:63343" 这两个源下面,使用规定的方法调用服务器资源。
package cn.lpe234;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* Cors配置
* Created by lpe234 on 2017/6/13.
*/
@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
// super.addCorsMappings(registry);
registry
// 添加需要允许跨域的API接口
.addMapping("/**")
// 允许跨域的方法
.allowedMethods("GET", "POST", "PUT", "DELETE")
// 允许跨域的源(协议+地址+端口)
.allowedOrigins("http://localhost:63343", "http://127.0.0.1:63343")
.maxAge(2*60*60)
;
}
}