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

Vue使用代理方式解决跨域问题

1、解决跨域问题

如果 Vue 前端应用请求后端 API 服务器,出现跨域问题(CORS),如下图:

解决方法:在 Vue 项目中,打开 vue.config.js 配置文件,在配置文件中使用代理解决跨域问题。

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,devServer:{proxy: 'http://localhost:8085',  //使用代理,解决跨域问题}
})

注意:配置代理完成后,请求的URL前面不需要再加上完整的域名了,示例如下:

function getUserInfo(userId) {//使用 axios 的 GET 请求axios({method: 'GET',//注意:因为配置了代理服务器(解决跨域问题),所以请求的URL前面不需要再加上完整的域名//url: `http://localhost:8085/user/getUserInfo/${userId}` //错误url: `/user/getUserInfo/${userId}` //正确}).then(function (response) {userInfo.value = response.data;}).catch(function (error) {alert("发生异常:" + error.message);});
}

最后重新启动项目就可以了。

2、配置说明

2.1 vue.config.js 配置文件

vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。

vue.config.js 官方文档:《vue.config.js 配置参考》

2.2 devServer.proxy 配置项 

 如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。

devServer.proxy 可以是一个指向开发环境 API 服务器的字符串:

module.exports = {devServer: {proxy: 'http://localhost:4000'}
}

官方文档:《devServer.proxy 配置项》

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Git】Git Commit Angular规范详解
  • win10下使用docker、k8s部署java应用
  • 【HTML元素居中】元素水平垂直居中的常用方法
  • ‌内网穿透技术‌总结
  • Python知识点:使用Cython进行Python性能优化
  • VSCode 离线安装中文语言包
  • 基于springboot+vue超市管理系统
  • Sharding-Jdbc+Mybatis+SpringBoot的分库分表实现
  • Vue学习记录之六(组件实战及BEM框架了解)
  • STM32巡回研讨会总结(2024)
  • [000-01-008].第05节:OpenFeign特性-重试机制
  • LeetCode题练习与总结: 数字 1 的个数--233
  • Resnet50网络——口腔癌病变识别
  • 在HTML中添加视频
  • Dell PowerEdge 网络恢复笔记
  • exif信息对照
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java 网络编程(2):UDP 的使用
  • MQ框架的比较
  • PAT A1092
  • PermissionScope Swift4 兼容问题
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue实战(四)登录/注册页的实现
  • vue总结
  • 诡异!React stopPropagation失灵
  • 简单实现一个textarea自适应高度
  • linux 淘宝开源监控工具tsar
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​虚拟化系列介绍(十)
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #Linux(Source Insight安装及工程建立)
  • #QT(串口助手-界面)
  • #传输# #传输数据判断#
  • $refs 、$nextTic、动态组件、name的使用
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (12)Linux 常见的三种进程状态
  • (20050108)又读《平凡的世界》
  • (30)数组元素和与数字和的绝对差
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (黑马点评)二、短信登录功能实现
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (一)Neo4j下载安装以及初次使用
  • (转)jdk与jre的区别
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET Framework杂记
  • .Net Redis的秒杀Dome和异步执行
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件