跨域中不同的域指的是“协议+IP+端口”,只要其中一个不相同就要跨域访问,为了安全,浏览器对于跨域默认是禁止访问的。现在很多应用的客户端和服务端是分开的,那么如何来让处于不同域的客户端和服务端实现跨域访问呢,而且客户端还可能不止一个,那么又如何实现多客户端跨域访问一个服务端呢?
本文的项目默认使用Maven构建,并使用Spring Security实现安全,首先在src/main/resources目录建properties文件,在配置文件中输入Access-Control-Allow-Origin=http://192.168.1.1,http://192.168.1.2,http://192.168.1.3,代表客户端的三个域。(站点必须带"http://"还有端口号,这里使用默认端口号80,因此可以省略)
1、通过@Value注解从properties文件取字符串数组
建一个类,并使用@Component注解标注类,属性适用@Value注解,注意引用org.springframework.beans包。@Component
public class MyFilter {
@Value("${Access-Control-Allow-Origin:}")// 这里的冒号加与不加感觉没区别
String[] originProperties; // 这里竟然可以直接以数组接收以逗号分隔的多个属性
}
这样就可以直接得到客户端来源域的数组。
有的时候@Value取不到值