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

vue 请求代理 proxy

目录

为什么需要配置代理

什么是同源策略

如何配置代理

请求代理的原理

举例说明


为什么需要配置代理

      因为浏览器的同源策略,当向和本地 devServer 服务器不同源的地址发送请求,

      会违反浏览器的同源策略,导致发送失败,所以需要配置本地服务器代理请求

什么是同源策略

      同源策略是浏览器厂商提出的web安全策略,是浏览器最核心也最基本的安全功能,

      同源即:协议(http等)相同,域名(www.baidu.com等)相同,端口(8080等)相同,

      只要有一个不同就违反了同源策略

如何配置代理

        在 vue devServer服务器配置文件 vue.config.js 的 devServer 选项中配置 proxy

// 本地服务器配置
devServer: {proxy: {// '/api'可以是字符串形式的任何值,表示以/api开头的请求,// 实际项目中所以路径以/api开头的请求都会被本地服务器转发"/api": {// target指想要被代理的后端接口服务器地址(目标路径)(真正需要请求的服务器地址)target: 'http://192.168.3.122:1100',// 设置为true后,请求头中的host值会被设置成目标URL(target)中的host值changeOrigin: true,// pathRewrite用以在发送请求时,重写请求路径// 如果在实际的请求路径中你不希望出现/api,可以重写路径,在请求路径中去掉/api// 假设接口服务地址为:http://192.168.3.122:1100,接口路径为/company/list// 假设你的 baseURl 为/api,那么请求路径就会变成:http://192.168.3.122:1100/api/company/list,路径中多余/api// 那么你可以通过重写(如下方式)去掉/api,具体的使用根据业务来决定pathRewrite: {'^/api': ''}}}
}

请求代理的原理

一句话总结:服务器不受同源策略的影响

因为服务器不受同源策略的影响,所以可以使用本地 devServe 服务器将请求代理到目标服务器上。

所以前端需要先向本地服务器发送请求,通过 proxy 的代理配置,本地服务器就可以将我们的请求代理到目标服务器上。

解释1:如果前端请求没有服务器地址(域名或ip),浏览器会在前面默认加上当前页面所属服务器地址(开发环境为devServer服务器地址),服务器先在自己身上寻找对应资源,找不到时服务器就会判断当前请求地址和我们配置的代理信息是否符合,符合的话就去帮我们发送请求。

假设有一本地启动前端项目,和后端接口服务器

前端地址为:http://localhost:8083(本地 devServer 服务器地址)(以下简称本地地址)

后端接口服务地址为:http://192.168.3.122:1100(真正请求的服务地址)(以下简称接口地址)

假设 baseURL 为接口地址会跨域,那么可以将 baseURL 设置为本地地址并添加代理路径,向本地服务器发送请求,或者设置 baseURL 为 /api,那么请求同样会指向本地服务器(见解释1),通过配置本地服务器 proxy 代理设置(如上设置),将请求中包含 /api 的请求代理到目标服务器上(有点类似nginx代理)。

因为 proxy 中配置的是对某一具体路径的请求的代理,所以 URL 路径中必须包含配置的路径,否则不会被代理。如 baseURL 如果为本地地址,则需要在 baseURL 中添加一个路径标识,并在 proxy 中配置标识的代理设置,才能正确代理。

举例说明

接口服务地址:http://192.168.3.122:1100

前端服务地址:http://localhost:8083(开发环境)

如果需要将请求通过前端服务代理到接口服务地址,可以配置前端 baseURL 为 /api 或者 http://localhost:8083/api

如果接口路径为 /login(登录)

本地请求全路径为:http://localhost:8083/api/login,接口路径多余 /api

代理设置 changeOrigin 为 true,则 localhost:8083 会被替换为 192.168.3.122:1100

此时请求全路径变为 http://192.168.3.122:1100/api/login

代理设置 pathRewrite 重写请求路径 /api 为 " "

最终路径为 http://192.168.3.122:1100/login,可以成功发送请求

~~完~~

相关文章:

vue 请求代理 proxy

目录 为什么需要配置代理 什么是同源策略 如何配置代理 请求代理的原理 举例说明 为什么需要配置代理 因为浏览器的同源策略,当向和本地 devServer 服务器不同源的地址发送请求, 会违反浏览器的同源策略,导致发送失败,所以需…...

使用Spring Boot构建稳定可靠的分布式爬虫系统

摘要:本文将介绍如何使用Spring Boot框架构建稳定可靠的分布式爬虫系统。我们将从系统设计、任务调度、数据存储以及容灾与故障恢复等方面进行详细讲解,帮助读者理解并实践构建高效的分布式爬虫系统。 1. 引言 随着互联网的快速发展,爬虫系…...

分享一个查询OpenAI Chatgpt key余额查询的工具网站

OpenAI Key 余额查询工具 欢迎使用 OpenAI Key 余额查询工具网站!这个工具可以帮助您轻松地验证您的 OpenAI API 密钥,并查看您的余额。 http://tools.lbbit.top/check_key/ 什么是 OpenAI Key 余额查询工具? OpenAI Key 余额查询工具是一…...

【LeetCode刷题(数据结构与算法)】:二叉树的后序遍历

给你一棵二叉树的根节点root 返回其节点值的后序遍历 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1] 示例 2: 输入:root [] 输出:[] 示例 3: 输入:root [1] 输出:[1]…...

内网、外网、宽带、带宽、流量、网速之间的区别与联系

一.带宽与宽带的区别是什么? 带宽是量词,指的是网速的大小,比如1Mbps的意思是一兆比特每秒,这个数值就是指带宽。 宽带是名词,说明网络的传输速率速很高 。宽带的标准各不相同,最初认为128kbps以上带宽的就…...

打造类ChatGPT服务,本地部署大语言模型(LLM),如何远程访问?

ChatGPT的成功,让越来越多的人开始关注大语言模型(LLM)。如果拥有了属于自己的大语言模型,就可以对其进行一些专属优化。例如:打造属于自己的AI助理,或是满足企业自身的业务及信息安全需求。 所以&#xff…...

linux平台的无盘启动开发

by fanxiushu 2023-10-15 转载或引用请注明原始作者。 前一章节介绍的是linux平台下的虚拟磁盘驱动开发过程,主要讲述了 基于block的磁盘和基于SCSI接口的磁盘。 本文介绍的内容正是基于上文中的SCSI接口的虚拟磁盘实现的无盘启动。 同样的,linux系统下也…...

【GO入门】环境配置及Vscode配置

1 GO环境配置 欢迎来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。Go为软件构造提供了一种模型&…...

家政服务小程序,家政维修系统,专业家政软件开发商;家政服务小程序,家政行业软件开发

家政服务小程序,家政维修系统,专业家政软件开发商; 家政服务小程序,家政行业软件开发解决方案,家政软件经验丰富实践,系统高度集成,提供师傅端、用户端、… 家政服务app开发架构有 1、后台管理端…...

英语——语法——从句——状语从句——笔记

一、概念 状语从句(Adverbial Clause)是指句子用作状语时,起副词作用的句子。状语从句中的从句可以修饰谓语。 状语从句根据其作用可分为时间、地点、原因、条件、目的、结果、让步、方式和比较等九 种状语从句。状语从句一般由连词(从属连词…...

Linux 学习的六个过程

Linux 上手难,学习曲线陡峭,所以它的学习过程更像一个爬坡模式。这些坡看起来都很陡,但是一旦爬上一阶,就会一马平川。 1、抛弃旧的思维习惯,熟练使用 Linux 命令行 在 Linux 中,无论我们做什么事情&…...

『heqingchun-ubuntu系统下安装nvidia显卡驱动3种方法』

ubuntu系统下安装nvidia显卡驱动3种方法 一、安装依赖 1.更新 sudo apt updatesudo apt upgrade -y2.基础工具 sudo apt install -y build-essential python图形界面相关 sudo apt install -y lightdm注:在弹出对话框选择"lightdm" 二、第一种:使用…...

[paddle]paddleseg中eiseg加载模型参数的模型下载地址

图片标注 以下内容为2D图片标注模型下载及EISeg2D图片标注流程,具体如下: 模型准备 在使用EISeg前,请先下载模型参数。EISeg开放了在COCOLVIS、大规模人像数据、mapping_challenge,Chest X-Ray,MRSpineSeg&#xff…...

标定板生成网址,可以直接打印,matlab标定工具箱

Camera Calibration Pattern Generator – calib.io matlab 打开标定的成像 cameraCalibrator 点击完成之后 命令行中输入 cameraParams.IntrinsicMatrix...

React高级特性之受控和非受控组件

一、受控组件 受控组件:input框自己的状态被React组件状态控制 // 类组件引入React import React from reactclass InputComponent extends React.Component{state {message: zm66666}changeHandler (e) > {this.setState({message: e.target.value})}render…...

Android 14 正式发布,已经在 AOSP 中上线

本心、输入输出、结果 文章目录 Android 14 正式发布,已经在 AOSP 中上线前言总结主要更新内容机型支持优化性能的数据体现字体放大、多媒体支持加强Android 14 增加了对 10 位高动态范围 (HDR) 图像的支持提供了新的图形和尺寸管理用户体验 与隐私安全弘扬爱国精神Android 14…...

软件开发介绍

一、软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程,以及软件开发过程中涉及到的岗位角色,角色的分工、职责,并了解软件开发中涉及到的三种软件环境。 1.1 软件开发流程 第一阶段&#xff1a…...

Go 匿名函数与闭包

Go 匿名函数与闭包 匿名函数和闭包是一些编程语言中的重要概念,它们在Go语言中也有重要的应用。让我们来详细介绍这两个概念,并提供示例代码来帮助理解。 文章目录 Go 匿名函数与闭包一、匿名函数(Anonymous Function)二、闭包函…...

html关闭空标签

常见的空标签有以下几种示例&#xff1a; <br>&#xff1a;表示换行&#xff0c;没有闭合标签。<hr>&#xff1a;表示水平线&#xff0c;没有闭合标签。<img>&#xff1a;表示图片&#xff0c;没有闭合标签。<input>&#xff1a;表示输入框&#xff0…...

Java实现B树

1.介绍 B树是一种自平衡的搜索树数据结构&#xff0c;常用于数据库和文件系统中的索引结构。它具有以下好处和功能&#xff1a; 高效的查找操作&#xff1a;B树的特点是每个节点可以存储多个关键字&#xff0c;并且保持有序。通过在节点上进行二分查找&#xff0c;可以快速定位…...

汽车电子 - AutoSAR CAN通信栈:从硬件对象到软件缓冲的实战解析

1. AutoSAR CAN通信栈的核心概念解析 第一次接触AutoSAR CAN通信栈时&#xff0c;我被各种专业术语搞得晕头转向。经过几个项目的实战&#xff0c;终于摸清了其中的门道。CAN通信栈就像快递公司的物流系统&#xff0c;硬件是运输车辆&#xff0c;软件是调度中心&#xff0c;而报…...

别再手动敲命令了!用Docker Compose一键部署Nacos 2.4.2,附MySQL持久化配置

告别繁琐命令&#xff1a;Docker Compose全栈部署Nacos 2.4.2与MySQL的最佳实践 在微服务架构的浪潮中&#xff0c;服务发现与配置管理已成为现代应用不可或缺的基础设施。Nacos作为阿里巴巴开源的服务注册与配置中心&#xff0c;凭借其轻量级、高可用的特性&#xff0c;正逐步…...

文墨共鸣大模型智能体(Agent)开发入门:构建自动化任务执行系统

文墨共鸣大模型智能体&#xff08;Agent&#xff09;开发入门&#xff1a;构建自动化任务执行系统 你有没有想过&#xff0c;让AI不仅能回答问题&#xff0c;还能像人一样思考、规划&#xff0c;并主动使用工具去完成任务&#xff1f;比如&#xff0c;你告诉它“帮我查一下北京…...

ChatDev SaaS平台终极指南:如何用AI多智能体技术10分钟开发专业软件

ChatDev SaaS平台终极指南&#xff1a;如何用AI多智能体技术10分钟开发专业软件 【免费下载链接】ChatDev 该项目利用由大型语言模型&#xff08;LLM&#xff09;驱动的多智能体协作技术&#xff0c;以自然语言概念为输入&#xff0c;实现定制化软件的开发过程。 项目地址: h…...

从“马斯克算法”中学到的 5 个硬核生存准则,如何颠覆平庸的终极护城河

你以为靠类比就能成功&#xff1f;其实马斯克的5条物理算法才是颠覆平庸的终极护城河作为一名深耕代码、产品迭代和系统架构的开发者&#xff0c;我曾经也深陷大多数人的陷阱&#xff1a;面对新需求&#xff0c;第一反应就是翻竞品案例、套行业模板&#xff0c;然后埋头优化流程…...

OpenClaw技能开发:用GLM-4.7-Flash打造专属翻译助手

OpenClaw技能开发&#xff1a;用GLM-4.7-Flash打造专属翻译助手 1. 为什么需要本地化翻译助手 作为技术文档的频繁使用者&#xff0c;我经常需要在中英文资料间切换查阅。传统翻译工具存在几个痛点&#xff1a;一是商业API的调用限制和隐私顾虑&#xff0c;二是通用翻译对技术…...

英语体育比赛口语

一、看比赛1. 邀约看球中文英文今晚有比赛&#xff0c;一起看吗&#xff1f;Theres a game tonight. Want to watch together?你看了昨晚的比赛吗&#xff1f;Did you watch the game last night?决赛什么时候&#xff1f;When is the final?我们去酒吧看球吧&#xff01;Le…...

别再踩坑了!Windows 10下Mamba-SSM 2.2.2 + CUDA 12.4保姆级安装指南(附已修复依赖包)

Windows 10下Mamba-SSM 2.2.2与CUDA 12.4终极配置指南 在深度学习领域&#xff0c;Mamba-SSM因其高效的状态空间模型架构而备受关注。然而&#xff0c;对于Windows用户而言&#xff0c;配置一个可用的Mamba-SSM环境往往是一场噩梦。本文将带你一步步避开所有陷阱&#xff0c;完…...

如何在Windows上实现高效完整的安卓应用安装:APK-Installer进阶指南

如何在Windows上实现高效完整的安卓应用安装&#xff1a;APK-Installer进阶指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK-Installer是一款专为Windows系统设…...

QWen 3.5plus总结的总结基准测试结果的正确方法

原文地址&#xff1a;https://dl.acm.org/doi/epdf/10.1145/5666.5673 如何用统计撒谎&#xff1a;总结基准测试结果的正确方法 作者&#xff1a;PHILIP J. FLEMING 和 JOHN J. WALLACE 在文献中&#xff0c;性能结果经常使用性能比率的算术平均值来总结&#xff0c;在某些情况…...