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

vue解决跨域问题

什么是跨域问题?

跨域请求是指协议名、主机名、端口号三者有任何一个不一样,就会被浏览器视为跨域请求。即使服务器接收并返回了结果,浏览器也会拦截响应,导致前端无法获取数据。

解决方案:配置代理服务器

配置代理服务器是一种正向代理的方式,它的原理如下:
1.设置一个代理服务器,其协议名、主机名、端口号与前端一致。
2.前端访问该代理服务器,由代理服务器转发请求给其他服务器获取数据。
3.代理服务器将数据返回给前端,解决了跨域问题。

配置代理服务器的方法

在 Vue 项目中,我们可以使用以下两种方法来配置代理服务器:

方法一:使用 vue.config.js

1.在项目根目录下创建 vue.config.js 文件(如果已存在,则直接编辑该文件)。
2.在 vue.config.js 中添加以下配置:

module.exports = {devServer: {proxy: 'http://localhost:5000' // 设置代理服务器地址}
};

这样,前端请求时会先经过代理服务器,解决了跨域问题。

方法二:更灵活的配置

如果你需要更灵活地控制请求是否走代理,可以使用以下方式:
1.在 vue.config.js 中配置多个代理:

module.exports = {devServer: {proxy: {'/api': {target: 'http://localhost:5000', // 设置代理服务器地址pathRewrite: { '^/api': '' }, // 去掉请求前缀ws: true, // 支持 WebSocketchangeOrigin: true // 修改请求头中的 host},'/demo': {target: 'http://localhost:5001',pathRewrite: { '^/demo': '' },ws: true,changeOrigin: true}}}
};

2.在前端请求时,使用带有 /api 或 /demo 前缀的地址,例如:

axios.get('/api/students').then(response => {console.log('响应体内容', response.data);
}).catch(error => {console.log('请求失败', error.message);
});

这样,你可以根据不同的请求前缀灵活地配置代理服务器。

  • 打卡6.10
    在这里插入图片描述

相关文章:

  • Spark RDD算子
  • 代码随想录算法训练营第三十一天| 455.分发饼干,376. 摆动序列 ,53. 最大子序和
  • 10进制与二、八、十六进制的转换
  • Day25 首页待办事项及备忘录添加功能
  • MFC 使用sapi文字转换为语音
  • 跨域、JSONP、CORS、Spring、Spring Security解决方案
  • maven的install不报错但deploy到nexus报400错误
  • AI大模型探索之路-实战篇16:优化决策流程:Agent智能数据分析平台中Planning功能实践
  • Python 中的装饰器及其作用
  • Oracle数据库连接并访问Microsoft SQL Server数据库
  • Apple开发者macOS设备与描述文件Profile创建完整过程
  • 协程库——面试问题
  • 大模型Prompt-Tuning技术进阶
  • 中介子方程十一
  • 异常(Exception)
  • HTML中设置input等文本框为不可操作
  • isset在php5.6-和php7.0+的一些差异
  • Linux快速复制或删除大量小文件
  • MySQL用户中的%到底包不包括localhost?
  • Python_网络编程
  • Service Worker
  • TypeScript迭代器
  • ucore操作系统实验笔记 - 重新理解中断
  • Vue学习第二天
  • 半理解系列--Promise的进化史
  • 多线程 start 和 run 方法到底有什么区别?
  • 高程读书笔记 第六章 面向对象程序设计
  • 构建二叉树进行数值数组的去重及优化
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 聊聊sentinel的DegradeSlot
  • 前端之Sass/Scss实战笔记
  • 手机端车牌号码键盘的vue组件
  • 为什么要用IPython/Jupyter?
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 从如何停掉 Promise 链说起
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • #传输# #传输数据判断#
  • (3)STL算法之搜索
  • (JS基础)String 类型
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***原理与防范
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 4.0中的泛型协变和反变
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Core与存储过程(一)
  • .NET Framework与.NET Framework SDK有什么不同?
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈