No 'Access

Stella981
• 阅读 625

跨域说明

前后端分离下,跨域已是一个老生常谈的话题,但很多小伙伴还是经常面临这样的问题,且解决方案多变多样。这里介绍一种简单直接的后端解决方案。

解决跨域(服务端)

/**
 * CorsConfig-跨域
 * 
 * @author    ylyue
 * @since    2018年11月26日
 */
@Slf4j
@Configuration
public class CorsFilterConfig {
    
    // CorsConfig-跨域
    
    @Bean
    @ConditionalOnMissingBean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration config = new CorsConfiguration();
        
        config.setAllowCredentials(true);
        config.setAllowedHeaders(Arrays.asList("*"));
        config.setAllowedMethods(Arrays.asList("*"));
        config.setAllowedOrigins(Arrays.asList("*"));
        config.setMaxAge(3600L);
        
        // 设置response允许暴露的Headers
//        config.setExposedHeaders(exposedHeaders);
//        config.addExposedHeader("token");
        
        source.registerCorsConfiguration("/**", config);
        
        log.info("【初始化配置-跨域】默认任何情况下都允许跨域访问 ... 已初始化完毕。");
        return new CorsFilter(source);
    }
    
}

基于yue-library解决跨域

上述代码就是从yue-library中摘出来的,所以基于yue-library的项目默认已解决跨域等问题。yue-library是SpringBoot的一个增强库,引入项目依赖即可解决跨域

maven项目,在pom.xml文件中添加如下一段代码,并将${version}替换为对应版本号:No 'Access

<parent>
    <groupId>ai.ylyue</groupId>
    <artifactId>yue-library-dependencies</artifactId>
    <version>${version}</version>
</parent>

随后引入所需要的模块,如基础库:yue-library-base

<dependencies>
    <dependency>
        <groupId>ai.ylyue</groupId>
        <artifactId>yue-library-base</artifactId>
    </dependency>
    ...
</dependencies>

点击快速了解yue-library

结语

跨域问题建议服务端解决即可,没必要开启跨域安全访问限制,他也只能阻止一些浏览器中的JS脚本注入,并不能做到真正的安全访问限制。有问题欢迎在下方留言交流...

点赞
收藏
评论区
推荐文章
室与 室与
3年前
Cors跨域解决
一、浏览器跨域问题产生1、跨源资源共享(CORS)中文文档:https://developer.mozilla.org/zhCN/docs/Web/HTTP/Access_control_CORS2、什么是浏览器跨域问题指的是浏览器不能执行其他网站的脚本。JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象,即同源策略。就好比我
待兔 待兔
1年前
什么是跨域以及如何解决?通俗易懂带你彻底搞定
什么是跨域以及如何解决?通俗易懂带你彻底搞定现在的web项目,很多都是前后端分离,特别容易出现跨域问题那么什么是跨域问题呢?本篇文章带你彻底从本质上弄明白什么是跨域问题以及如何解决一跨域有什么现象?我们先看一下
kenx kenx
2年前
SpringBoot 优雅配置跨域多种方式及Spring Security跨域访问配置的坑
前言最近在做项目的时候,基于前后端分离的权限管理系统,后台使用SpringSecurity作为权限控制管理,然后在前端接口访问时候涉及到跨域,但我怎么配置跨域也没有生效,这里有一个坑,在使用SpringSecurity时候单独配置,SpringBoot跨越还不行,还需要配置Security跨域才行。什么是跨域跨域是一种浏览器同源安全策略,即浏
Easter79 Easter79
2年前
springboot的跨域
https://www.cnblogs.com/520playboy/p/7306008.html1、对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处理。但是jsonp方式也同样有不足,不管是对
昔不亏 昔不亏
11个月前
「解决 — vue调用百度ai人脸识别接口跨域报错」
之前调都没毛病的,这次咋就开始报跨域了捏问题:跨域解决:配置proxy代理1:修改vue.config.js文件2:修改baseURL3:修改前后对比注:ProxyTable会在打包后失效,可以使用反向代理工具,例如nginx,或者让后端解决
Stella981 Stella981
2年前
SpringBoot实现jsonp跨域通信
实现jsonp跨域通信实现基于jsonp的跨域通信方案原理浏览器对非同源ajax请求有限制,不允许发送跨域请求目前跨域解决方案有两种cros配置jsonp请求cros为新规范,通过一个head请求询问服务器是否允许跨域,若不允许则被拦截jso
Easter79 Easter79
2年前
SpringBoot实现jsonp跨域通信
实现jsonp跨域通信实现基于jsonp的跨域通信方案原理浏览器对非同源ajax请求有限制,不允许发送跨域请求目前跨域解决方案有两种cros配置jsonp请求cros为新规范,通过一个head请求询问服务器是否允许跨域,若不允许则被拦截jso
Stella981 Stella981
2年前
Spring Boot 解决跨域问题的 3 种方案
前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。问题背景:SameOriginPolicy,译为“同源策略”。它是对
Stella981 Stella981
2年前
Spring Boot 中三种跨域场景总结
@\toc\跨域这个问题松哥之前写过文章,但是最近收到小伙伴们的一些问题,让我发现之前的总结不够全面,因此打算再写一篇文章,来和大家分享一下SpringBoot中的跨域问题。这次我把SpringBoot中的跨域问题分为了三个场景:普通跨域SpringSecurity跨域OAuth2跨域分
liam liam
6个月前
解决 Axios 跨域阻碍,提高前端接口访问效率
跨域是指访问另外一个域的资源,由于浏览器的同源策略,默认情况下使用XMLHttpRequest和Fetch请求时是不允许跨域的。跨域的根本原因是浏览器的同源策略,这是由浏览器对施加的安全限制。Axios跨域常见报错跨域请求被阻止(CrossOriginRe