首页 > 其他分享 >全栈开发 - 从 Vue 配置中解决 CORS 跨域问题【亲测有效】

全栈开发 - 从 Vue 配置中解决 CORS 跨域问题【亲测有效】

时间:2024-02-25 14:13:34浏览次数:18  
标签:axios 跨域 配置 Vue 全栈 api 解决

一、CORS 跨域问题解决
1.1、前言

如果你后端使用的是微服务项目,通过配置网关可以很好的解决跨域问题;

如果你使用 SpringBoot + Vue 来写项目,可以在 Controller 上加 @CrossOrigin 来解决跨域,但是一旦你在后端配置了拦截器(比如通过 HandlerInterceptor 配置登录拦截器),那么此时再解决跨域这个问题就很困难了.

Ps:在网上搜索 "Spring Boot 拦截器跨域问题解决" 会有大把大把的办法,但亲测没一个能用...

实际上,可以从 Vue 的角度来解决这个问题,只需要在 Vue 中进行如下配置即可.

1.2、解决办法
a)修改统一配置的 axios 实例
在 Vue 脚手架中,按照标准开发,一般会创建一个 utils 文件夹,里面创建一个 request.js 文件来统一封装 axios.

这里我们修改 axios 实例中的 baseURL 如下:

//构建统一 axios 实例
const instance = axios.create({
baseURL: "/api",
timeout: 5000
});
Ps:不要管为什么,你先配置!修改的这些配置将来都不会影响你的原有的操作!

b)修改 config 文件夹下的 index.js 文件
在 Vue2 中,config 目录下有一个 index.js 文件.

添加如下配置 

'/api': {
target: 'http://localhost:8010', //目标 url
changeOrigin: true, //是否跨域
pathRewrite: {
'^/api': '' //其中 /api 等价于前面的目标地址
}
}
c)完成
配置完了以后,一定要重启前端项目,重新 npm run dev !!

通过以上配置,后端也就无需担忧跨域问题了~
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/CYK_byte/article/details/133932373

标签:axios,跨域,配置,Vue,全栈,api,解决
From: https://www.cnblogs.com/youxl189/p/18032360

相关文章

  • vue入门系列-1
    概述vue入门第一天知识点引入Vue.js想让Vue工作,需要创建一个Vue的实例main容器里的代码遵循html规范,其中新增了一些特殊的Vue语法main容器里的代码被称为【Vue模板】代码示例<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="view......
  • Vue学习笔记14--计算属性
    计算属性: <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>计算属性--实现信息拼接</title&......
  • Vue3音乐播放器组件,可显示歌词
    在线体验地址音乐播放器1,安装npminstallapple-music-player或yarnaddapple-music-player2,在main.ts中引入import{createApp}from'vue'importAppfrom'./App.vue'importAppleMusicPlayerfrom'apple-music-player'createApp(App).use(......
  • Vue学习笔记13--插值语法 + method
    插值语法示例:插值语法--实现信息拼接<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>插值语法--实现信息......
  • 跨域
     1.介绍1)跨域问题:跨域问题是在网络中,当一个网络的运行脚本(通常时JavaScript)试图访问另一个网络的资源时,如果这两个网络的端口、协议和域名不一致时就会出现跨域问题。通俗讲,当一个请求的URL的端口、协议和域名三者之间任意一个与当前页面的URL不同即为跨域。......
  • vue3+elementplus+table动态列
    思路1.colsArr,用来渲染列表。dataList,用来渲染行数据2.循环colsArr,生成el-table-column3.数据格式如下colsArr:[{colName:'排名',key:'cols0'},{colName:'区域',key:'cols1'},{colName:&#......
  • vue3 使用 html5-qrcode 实现扫描二维码功能
    1.安装npm安装npminstall--save-devhtml5-qrcode或直接引入<scriptsrc="https://unpkg.com/html5-qrcode"type="text/javascript">2.引入根据需求自定义渲染QRscanningUI的容器。<divid="reader"width="600px"></div&......
  • Vue 中引入 axios 后报错
    vue报错:Moduleparsefailed:Unexpectedtoken(5:2)Youmayneedanappropriateloadertohandlethis具体错误信息如下:Moduleparsefailed:Unexpectedtoken(5:2)Youmayneedanappropriateloadertohandlethisfiletype.||exportdefault{|...utils,|......
  • Vue动态组件
    components简介在不同组件之间进行动态切换Vue的元素加一个特殊的【is】属性来实现多个组件使用同一个挂载点,之后动态在各个组件之间切换内置组件keep-alivekeep-alive动态组件默认每次切换都会销毁组件并重新创建,这样会影像性能使用keep-alive组件缓存非活动组件,可以保留......
  • 遇到Failed to get response from https://registry.npm.taobao.org/vue-cli-version-
    1.问题在启动vueui时,总是遇到报错,如下图:2.解决参考:vuecli创建项目报错:Failedtogetresponsefrom/vue-cli-version-marker找到你的.vuerc文件:C:\Users\trmbh\.vuerc,这里根据自己的用户名更改然后改为{"useTaobaoRegistry":false,"packageManager":"npm"}第......