SpringBoot实现全局和局部跨域的两种方式

 更新时间:2023年01月08日 15:16:03   作者:小花皮猪  
本文主要介绍了SpringBoot实现全局和局部跨域的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

在如今前后端分离的开发模式下,跨域是一个非常经典的问题,解决的方式也有很多,比如代理服务器,使用JSONP

我之前也写过一篇解决跨域问题的文章,感兴趣的可以参考:解决Vue前后端跨域问题的多种方式

上面两种解决跨域的办法都是在前端角度的,这次站在后端角度,从全局和局部两个方面解决跨域问题

什么是跨域

所谓的跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样。这里的域指的是这样的一个概念:我们认为若协议 + 域名 + 端口号均相同,那么就是同域。

解决跨域

后端解决跨域,主要借助cors

局部解决(使用注解)

可以使用注解:@CrossOrigin

该注解开启之后,就可以解决跨域问题,它可以加在controller中,表面这个controller中的全部方法都经过跨域处理,也可以单独加在某个方法上,表示只有这一个方法经过跨域处理

但是它的默认值为*,也就是默认全部放行,理论来说不太安全

如果项目里面又多个controller或者多个方法,使用注解就会显得非常鸡肋,如果一个一个加太麻烦了,这时候就可以使用全局注解了

全局解决

原理:创建一个配置类,开启跨域注册,并使用@Configuration注解把这个类当作一个配置注入到项目中

我们可以自由配置请求方式,以及域名权限,请求时间,更加细度的去控制跨域范围

package com.wyh.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Description: 解决全局跨域
 * @Author: 魏一鹤
 * @Date: 2022-11-30 22:44
 **/

@Configuration
public class CorsMapping implements WebMvcConfigurer {

    @Override
    /**
     * 重新跨域支持方法
     * CorsRegistry  开启跨域注册
     */
    public void addCorsMappings(CorsRegistry registry) {
        //addMapping 添加可跨域的请求地址
        registry.addMapping("/**")
                //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目
                .allowedOrigins("*")
                //是否开启cookie跨域
                .allowCredentials(false)
                //规定能够跨域访问的方法类型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加验证头信息  token
                //.allowedHeaders()
                //预检请求存活时间 在此期间不再次发送预检请求
                .maxAge(3600);
    }
}

注意:千万不要忘了@Configuration注解,不然配置是无效的!!!

总结

以上就是SpringBoot解决全局和局部跨域问题的两种方式了,根据自己的需求灵活选择即可!更多相关SpringBoot 全局和局部跨域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用vue组件实现图片的拖拽和缩放功能

    利用vue组件实现图片的拖拽和缩放功能

    这篇文章主要给大家介绍了关于利用vue组件实现图片的拖拽和缩放功能的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • vue计算属性及函数的选择

    vue计算属性及函数的选择

    这篇文章主要介绍了vue计算属性及函数的选择,文章围绕主题的相关资料展开详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • vue键盘事件keyup、keydown的作用

    vue键盘事件keyup、keydown的作用

    这篇文章主要介绍了vue键盘事件keyup、keydown的作用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示

    Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示

    这篇文章主要为大家详细介绍了Vue编写可显示周和月模式的日历,Vue自定义日历内容的显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 十分钟封装一个好用的axios步骤示例

    十分钟封装一个好用的axios步骤示例

    这篇文章主要为大家介绍了十分钟封装一个好用的axios步骤示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Vue通过URL传参如何控制全局console.log的开关详解

    Vue通过URL传参如何控制全局console.log的开关详解

    这篇文章主要给大家介绍了关于Vue根据URL传参如何控制全局console.log开关的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-12-12
  • 详解Vue项目的打包方式

    详解Vue项目的打包方式

    这篇文章主要为大家介绍了Vue项目的打包方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • vue实现修改标签中的内容:id class style

    vue实现修改标签中的内容:id class style

    这篇文章主要介绍了vue实现修改标签中的内容:id class style,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 基于vue 动态菜单 刷新空白问题的解决

    基于vue 动态菜单 刷新空白问题的解决

    这篇文章主要介绍了基于vue 动态菜单 刷新空白问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 教你轻松解决Vue Dialog弹窗诟病

    教你轻松解决Vue Dialog弹窗诟病

    弹窗经常被使用在一些表单的增删改查啊,或者弹出一些提示信息等等,这篇文章主要给大家介绍了关于Vue Dialog弹窗诟病解决的相关资料,需要的朋友可以参考下
    2023-01-01

最新评论