springboot跨域操作

哇,刚看到了跨域的源代码,还好理解。所以写一篇有关跨域文章。

什么是跨域:

指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。所谓同源是指,域名,协议,端口均相同。

了解问题之后要开始解决问题了。

springboot配置跨域还是很好实现的。

首先我创建一个配置类:CorsFilterConfig


一定要加上@Configuration这个注解,后面要用到@Bean注解

编写crosFilter方法返回值类型为FilterRegistrationBean

FilterRegistrationBean是springboot的一个过滤器。


接下来我们new一个CorsConfiguration类。

关于CorsConfiguration见名知意是一个跨域配置类

源代码大概是这么形容的:一个用于CORS配置的容器,以及用于检查的方法给定请求的实际来源、HTTP方法和标头。在默认情况下,一个新创建的 CorsConfiguration不允许任何跨源请求,必须显式配置以指示什么应该被允许。

贴出部分源代码:


见名知意,我们可以通过这个类去配置要允许的内容。比如头,方法等等。


我允许了以下几个。 *代表所有。

接着创建一个UrlBasedCorsConfigurationSource类。

UrlBasedCorsConfigurationSource:根据映射到路径模式的CorsConfiguration集合提供每个请求的CorsConfiguration实例。支持精确的路径映射uri(例如“/admin”),也支持ant样式的路径模式(例如“/admin/**”)。

老规矩,贴出源代码:


UrlBasedCorsConfigurationSource实现了CorsConfigurationSource接口,我们看下这个接口里面有什么。


这是里面熟悉不,有个返回CorsConfiguration类型的方法。

我们看下UrlBasedCorsConfigurationSource的具体实现:

然后我们用UrlBasedCorsConfigurationSource的registerCorsConfiguration把路径和配置信息注册进去。


接下来注册过滤器FilterRegistrationBean.


order值越小,Filter越早经过。

好了这么一个跨域完成了。

下面贴出全部代码:


你可能感兴趣的:(springboot跨域操作)