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

vue 脚手架解决跨域问题

一、什么是跨域

一个URL地址是由三部分组成的,分别是域名、端口、协议,只要是两个URL地址有一个部分不是相同的,就是跨域。如下:

域名跨域:www.example.com   和 www.anotherexample.com

端口跨域:8080 和 8098

协议跨域:https 和 http 、 http 和 ftp 等等

二、为什么会跨域

跨域的本质就是浏览器限制了请求的发送,只是在浏览器的页面中存在跨域一说。这是由于浏览器的同源策略引起的,同源策略是一种安全机制,用于防止一个网页获取另一个域名下的敏感信息。

在后端没有开启cors的情况下,浏览器的同源策略会直接限制后端返回的数据给到前端。这是因为我们目前所有的项目都是前后分离,前端一个服务, 后端一个服务,后端不开cors只能前端处理。

代理如何解决跨域呢?前端的请求不能直接到达后端,那就找一个中间代理,前端和中间代理之间域名、端口、协议都一致,就不会发生跨域问题。当请求到达代理服务器后,由代理服务器向后端发送请求。刚才不是说跨域是由域名、端口、协议不一致引起的吗?为什么代理服务器和后端之间确没有跨域呢?这是因为跨域是浏览器限制了请求,只是针对浏览器而言的。代理服务器是node, node 向后台发送请求自然不会有问题了。

 

三、解决跨域

在 vue.config.js 配置文件配置

 devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    proxy: {
      "/api": {   // 只要路径中带有 /api 这个路径,就会跳转到目标地址,并拼接后面的请求地址
        target: 'https://heimahr.itheima.net'  // 这里填写目标地址,即需要向哪台服务器请求数据,就写哪个服务器地址
      }
    }
    // before: require('./mock/mock-server.js')  // 基础模板做的模拟数据,会拦截请求
  },


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

相关文章:

  • 网络基本概念认识(2)
  • Unity Standard Shader 解析(一)之ForwardBase(标准版)
  • pycharm终端操作远程服务器
  • 七、学习资源与社区
  • Java开发者指南:深入解析PBFT拜占庭容错算法
  • 数据结构(并查集,图)
  • Gerbv 与 Python 协同:实现 Gerber 文件智能分析与制造数据自动化
  • 【从零实现Json-Rpc框架】- 项目实现 - Dispatcher模块实现篇
  • AI+Xmind自动生成测试用例(思维导图格式)
  • RabbitMQ消息相关
  • 垃圾回收机制的几种实现机制简介
  • 【keil】单步调试
  • ✨分享我在飞书多维表格中使用DeepSeek的经历✨
  • c++第三课(基础c)
  • Android Jetpack学习总结(源码级理解)
  • 《云原生安全攻防》-- K8s容器安全:权限最小化与SecurityContext
  • 模块化革命:树莓派CM5嵌入式工业计算机如何重构嵌入式系统开发边界
  • 在IDEA中使用TortoiseSVN
  • C语言笔记数据结构(链表)
  • LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板