前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跨域问题及解决方案

跨域问题及解决方案

作者头像
乐心湖
发布2021-01-18 14:42:36
5120
发布2021-01-18 14:42:36
举报
文章被收录于专栏:MyTechnologyMyTechnology

跨域中的同源策略

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript 施加的安全限制。

同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域。

这里有一个对跨域问题更加详细的介绍

HTTP访问控制(CORS)

非简单的请求,会先发送预检请求。必须响应回来一个允许跨域,才可以真正开始通讯。

解决跨域问题

在开发阶段,我们一般采用第二种。

可以配置在单个微服务,也可以配置在网关这一块。

主要的类是 CorsWebFilter ,里面需要一个 CorsConfigurationSource 接口作为参数,我们new一个它的实现类 UrlBasedCorsConfigurationSource ,设置所有的请求都要经过,然后在第二个参数传一个CorsConfiguration ,该接口可以设置各种具体的跨域请求。

具体代码

代码语言:javascript
复制
@Configuration
public class LaketradingCorsConfiguration {
    @Bean
    public CorsWebFilter corsWebFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.addAllowedHeader("*");
        configuration.addAllowedMethod("*");
        configuration.addAllowedOrigin("*");
        configuration.setAllowCredentials(true);
        source.registerCorsConfiguration("/**",configuration);
        return new CorsWebFilter(source);
    }
}

针对SpringBoot还有一个注解,@CrossOrigin 直接添加在API接口层就行。但这也是比较麻烦的,每个 Controller 都要添加。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 跨域中的同源策略
  • 解决跨域问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档