当前位置: 首页 > article >正文

解决Spring+Vue的跨域问题

文章目录

  • 解决Spring+Vue的跨域问题
    • 一、引言
    • 二、前端Vue配置代理解决跨域
      • 1、配置代理
      • 2、使用axios发送请求
    • 三、后端Spring配置解决跨域
      • 1、全局配置跨域策略
    • 四、使用示例
    • 五、总结

解决Spring+Vue的跨域问题

在这里插入图片描述

一、引言

在前后端分离的开发模式中,Spring和Vue是常用的后端和前端框架。然而,在开发过程中,我们经常会遇到跨域问题,即浏览器出于安全考虑,限制了不同源之间的请求。本文将介绍如何在Spring和Vue项目中解决跨域问题,确保前后端能够顺利通信。

二、前端Vue配置代理解决跨域

1、配置代理

在Vue项目中,可以通过修改vue.config.js文件来配置代理,将前端请求转发到后端服务器。具体步骤如下:

  1. 在项目根目录下创建或修改vue.config.js文件。

  2. 添加代理配置,如下所示:

    JavaScript复制

    module.exports = {
        devServer: {
            proxy: {
                '/api': {
                    target: 'http://localhost:8081', // 后端服务器地址
                    changeOrigin: true,
                    pathRewrite: {'^/api': ''} // 重写路径,去掉/api前缀
                }
            }
        }
    };
    

    这样,当我们在前端发送请求到/api路径时,请求会被代理到http://localhost:8081

2、使用axios发送请求

在Vue组件中,使用axios库发送请求时,只需访问配置的代理接口。例如:

JavaScript复制

axios.get('/api/data')
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error(error);
    });

这样,请求会被发送到http://localhost:8081/data

三、后端Spring配置解决跨域

1、全局配置跨域策略

在SpringBoot的配置类中,可以通过实现WebMvcConfigurer接口来全局配置跨域请求。具体步骤如下:

  1. 创建一个配置类,例如CorsConfig

  2. 实现WebMvcConfigurer接口,并重写addCorsMappings方法,如下所示:

    java复制

    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")  // 允许跨域请求的路径
                    .allowedOrigins("http://localhost:8080")    // 允许的域名
                    .allowCredentials(true) // 允许携带认证信息(前后端保持一致)
                    .maxAge(3600)   // 预检请求缓存时间,1小时
                    .allowedHeaders("*")    // 允许的请求头
                    .allowedMethods("GET", "POST", "PUT", "DELETE");   // 允许的方法
        }
    }
    

    这样,所有请求都会应用这个跨域策略。

四、使用示例

假设我们有一个SpringBoot后端接口/api/data,返回一些数据。在Vue前端,我们可以通过axios发送请求来获取这些数据:

JavaScript复制

// Vue组件中
methods: {
    fetchData() {
        this.$axios.get('/api/data')
            .then(response => {
                console.log(response.data);
            })
            .catch(error => {
                console.error(error);
            });
    }
}

在SpringBoot后端,我们配置了全局跨域策略,允许来自http://localhost:8080的请求。同时,在Vue项目中,我们配置了代理,将/api路径的请求转发到后端服务器。这样,前后端就可以顺利通信,解决跨域问题。

五、总结

通过在Vue项目中配置代理和在SpringBoot项目中配置全局跨域策略,我们可以有效地解决Spring+Vue项目中的跨域问题。前端通过代理将请求转发到后端,后端通过全局配置允许特定域名的请求,从而实现前后端的顺利通信。希望本文的介绍能帮助你在开发过程中顺利解决跨域问题。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • SpringBoot与Vue交互解决跨域问题【亲测已解决】
  • SpringBoot+Vue:一站式解决跨域问题

http://www.kler.cn/a/511973.html

相关文章:

  • Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
  • 深度学习常见术语解释
  • 【数学建模美赛速成系列】O奖论文绘图复现代码
  • OpenCV简介、OpenCV安装
  • Chrome 132 版本新特性
  • InVideo AI技术浅析(五):生成对抗网络
  • 精选了几道MySQL的大厂面试题,被提问的几率很高!
  • JavaScript笔记APIs篇02——DOM事件
  • 【Maui】下拉框的实现,绑定键值对
  • 【HarmonyOS NAPI 深度探索12】创建你的第一个 HarmonyOS NAPI 模块
  • [计算机网络]一. 计算机网络概论第一部分
  • 04商品详情
  • react中,使用antd的Upload组件切片上传.zip文件及压缩包的下载
  • PyTorch使用教程(15)-常用开源数据集简介
  • 【STM32-学习笔记-15-】MAX7219点阵屏模块
  • Redis - General - 未授权访问漏洞(用户配置问题)
  • Quartus:开发使用及 Tips 总结
  • 适合快递驿站出库仪一体机的安卓主板
  • 如何在龙蜥 OS(AliOS)上安装极狐GitLab?
  • canvas snake game
  • 面向CTF的python_requests库的学习笔记
  • 二十项零信任相关的前沿和趋势性技术-Extranet as a Service
  • 中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)
  • C#集合排序指南:掌握自定义排序的多种方法
  • 汇编学习笔记(自用)
  • LLM(3) : 浏览器录制16K的音频并上传到后端