proxy配置代理

通过代理配置可以实现以下几个作用

  1. 跨域请求处理:当前端应用运行在一个域名下,而需要请求的 API 接口位于另一个域名下时,由于浏览器的同源策略限制,会导致跨域请求失败。通过代理配置,可以将前端应用的请求先发送到同域名下的代理服务器,再由代理服务器转发请求到目标服务器,从而绕过跨域限制。

  2. 请求转发和中间件处理:代理配置可以用来对请求进行转发或者在请求和响应之间添加一些中间件逻辑,比如修改请求头、日志记录、权限验证等操作。这样可以对请求进行更灵活的控制和处理。

  3. 本地开发环境调试:在本地开发环境中,前端应用可能需要与后端 API 进行交互。通过代理配置,可以将前端应用发送的请求代理到本地运行的后端服务,方便开发人员在本地进行接口调试和开发。

常见的属性和方法

在代理配置中,通常会使用一些属性和方法来定制代理服务器的行为。以下是一些常见的属性和方法:

  1. target:指定要代理的目标服务器的地址,可以是一个字符串或者一个对象。

  2. changeOrigin:控制请求头中的 Host 值,如果设置为 true,则将请求的 Host 头部更改为目标 URL。默认为 false。

  3. pathRewrite:用于重写请求路径,可以将请求路径中的一部分内容替换为其他内容。

  4. onProxyReq:一个函数,在发送代理请求之前执行,可以用来修改请求头等信息。

  5. onProxyRes:一个函数,在收到代理响应后执行,可以用来修改响应数据等。

  6. logLevel:设置日志级别,用来控制代理服务器输出的日志信息的详细程度。

  7. secure:控制是否验证代理服务器的 SSL 证书,默认为 true。

  8. xfwd:控制添加 X-Forwarded-* 标头的行为,用来传递原始请求的信息。

例:请求某站的数据

创建一个channel.js文件,

fetch API 是一个用于发送网络请求的现代异步方法。返回一个 Promise 对象,使用 async/await 或者 .then() 方法来处理其返回的结果。通过 await 关键字,我们等待 Promise 对象成功解析后得到响应对象,然后再次使用 await 将响应对象转换为 JSON 格式的数据

export default {
    async getChannels() {
        var resp = await fetch('/x/web-interface/article/up/list');
        var data = await resp.json();
        console.log(data, 'data');
    }
}

触发getChannels()方法

<script>
import channelserv from '../../utils/channel'
export default {
  mounted() {
    channelserv.getChannels()
    .then(res => {
        console.log(res,'拿到的数据');
    })
    .catch(error => {
        console.error(error);
    });
  },
}
</script>

配置代理:在vue项目中创建vue.config.js文件,

module.exports = {
    devServer: {
        proxy: { //proxy配置代理
            '/x': { //凡是以/x开头的请求,进行代理
                target: 'https://api.bilibili.com',
                onProxyReq(proxyReq) { //添加请求头
                    proxyReq.setHeader('origin', 'https://www.bilibili.com');
                    proxyReq.setHeader('referer', 'https://www.bilibili.com/v/channel');
                }
            }
        }
    },
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/447818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于鹦鹉优化算法(Parrot optimizer,PO)的无人机三维路径规划(提供MATLAB代码)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径&#xff0c;使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一&#xff0c;它可以通过算法和模型来确定无人机的航迹&#xff0c;以避开障碍物、优化飞行…

2024最新最全【网络安全】学习路线,零基础入门到精通

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

Linux安装Mysql8.0

本案例为linux安装mysql8.0.27 若非新服务器可先查看是否已安装mysql&#xff0c;若已安装先进行卸载。 1、Linux查看glibc版本信息&#xff0c;下载相应的MYSQL ldd --version2、mysql下载 https://downloads.mysql.com/archives/community/ 3、安装 linux打开目录&#xf…

python数据类型 -- 元组Tuple

你好, 我是木木, 目前正在做两件事   1. 沉淀自己的专业知识   2. 探索了解各种副业项目&#xff0c;同时将探索过程进行分享&#xff0c;帮助自己以及更多朋友找到副业, 做好副业 文末有惊喜 在Python中&#xff0c;元组&#xff08;tuple&#xff09;是一种不可变序列类型&…

(二十四)Flask之flask-session组件

目录&#xff1a; 每篇前言&#xff1a;Flask-session 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 &#x1f525;&#x1f525;本文已收录于…

qt-C++笔记之使用Cmake来组织和构建QWidget工程项目

qt-C笔记之使用Cmake来组织和构建QWidget工程项目 —— 杭州 2024-03-10 code review! 文章目录 qt-C笔记之使用Cmake来组织和构建QWidget工程项目1.运行2.文件结构3.CMakeLists.txt4.main.cpp5.widget.h6.widget.cpp7.widget.ui 1.运行 2.文件结构 3.CMakeLists.txt 代码 c…

批量文本处理:轻松提取与整理大量文本内容

在数字时代&#xff0c;内容创作已成为企业与个人传递信息、展示品牌形象的重要手段。然而&#xff0c;面对海量的文本信息&#xff0c;如何高效地提取关键内容&#xff0c;并将其转化为引人注目的标题和宣传软文&#xff0c;成为了摆在我们面前的一大挑战。 第一步&#xff0…

电脑桌面图标变大了怎么恢复?5种简单方法帮你恢复正常

在使用电脑的过程中&#xff0c;有时候我们可能会遇到桌面图标变得异常大的情况。这种问题不仅影响了桌面的整洁度&#xff0c;也可能会影响我们的操作体验。电脑桌面图标变大了怎么恢复&#xff1f;如果你也遇到了这种情况&#xff0c;不用担心&#xff0c;本文将为你介绍五种…

【C++从0到王者】第五十二站:跳表

文章目录 一、什么是跳表二、skiplist的效率三、skiplist的实现 一、什么是跳表 skiplist本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树和哈希表的价值是一样的&#xff0c;可以作为key或者key/value的查找模型。 skiplist&#xff0c;…

c++的STL(3)-- deque容器

目录 deque概述 deque的内存模型 注意: 1. deque的默认构造(和vector类似) 代码: 2. deque的有参构造(和vector类似) 代码: 3. deque容器在首部和尾部添加或者元素 代码: 相关知识点: 4. deque容器的元素个数 (和vector类似) 代码: 5. deque在指定位置插入元素(和…

Linux搭建ftp服务

使用yum 进行安装 # 在线安装FTP yum install -y vsftpd 安装完成后查看ftp状态 # 查看ftp状态 systemctl status vsftpd.service # 启动ftp状态 重启&#xff1a;restart&#xff0c;停止&#xff1a;stop&#xff0c;开机自启&#xff1a;enable&#xff0c;关闭开机自启&…

【小黑送书—第十二期】>>一本书讲透Elasticsearch:原理、进阶与工程实践(文末送书)

Elasticsearch 是一种强大的搜索和分析引擎&#xff0c;被广泛用于各种应用中&#xff0c;以其强大的全文搜索能力而著称。 不过&#xff0c;在日常管理 Elasticsearch 时&#xff0c;我们经常需要对索引进行保护&#xff0c;以防止数据被意外修改或删除&#xff0c;特别是在进…

图片二维码能长期扫码展示吗?在线图片快速生码的文字教学

很多人在制作图片二维码的时候&#xff0c;比较关注的问题一个是扫码次数&#xff0c;另一个是二维码有效期&#xff0c;那么满足这两个需求的图片二维码该如何制作呢&#xff1f;想要制作不限制扫码次数并且长期有效的图片二维码&#xff0c;大家可以通过图片二维码生成器的功…

分库分表浅析原理

数据库存放数据大了&#xff0c;查询等操作就会存在瓶颈&#xff0c;怎么办&#xff1f; 1. 如果是单张表数据大了&#xff0c;可以在原有库上新建几张表table_0、table_1、table_2、.....table_n 写程序对数据进行分表&#xff1a; --这里提供一种一种分表策略,这里只需维护…

动态规划-背包问题 分析+代码

这里写自定义目录标题 介绍背包问题过程分析例题题目说明代码输出结果 介绍背包问题 背景&#xff1a;在现实生活中&#xff0c;我们常常会面临需要在有限空间内做出最优选择的情况&#xff0c;比如旅行时需要选择携带哪些物品&#xff0c;或者在资源有限的情况下选择最有利可图…

EASY-LASER激光对中仪维修E710镭射仪联轴器维修

Easy-Laser激光对中仪维修常见故障&#xff1a;触摸屏损坏&#xff08;屏碎&#xff0c;不显示&#xff0c;黑屏&#xff0c;蓝屏&#xff0c;无背光等&#xff09;&#xff0c;对中仪电路板损坏&#xff0c;对中仪接收装置电路板维修&#xff0c;对中仪发射控制装置电路板等均…

CubeMX使用教程(2)——如何点亮LED

在上一章&#xff0c;我们完成了CubeMX的环境配置&#xff0c;这一章我们通过CubeMX来完成点亮LED的工作。 通过LED原理图可知&#xff0c;如果我们要点亮LD1&#xff08;第一个灯&#xff09;&#xff0c;它对应开发板的PC8端口&#xff0c;因此我们应该在CubeMX中将PC8配置为…

OpenCV实战--人脸跟踪(级联分类器)

1、前言 人脸识别是基于人的脸部特征信息进行身份识别的--种生物识别技术,也是计算机视觉重点发展的技术。 机械学习算法诞生之后,计算机可以通过摄像头等输入设备自动分析图像中包含的内容信息,随着技术的不断发展,现在已经有了多种人脸识别的算法。 人脸跟踪是让计算机…

Java 语言“编译与解释并存”

程序语言的执行方式 将高级编程语言按照程序的执行方式分为两种&#xff1a; 编译型&#xff1a;编译型语言open in new window 会通过编译器open in new window将源代码一次性翻译成可被该平台执行的机器码。一般情况下&#xff0c;编译语言的执行速度比较快&#xff0c;开发…

微信jssdk获取定位计算距离

微信网页jssdk开发文档获取地理位置接口文档&#xff1a;https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#36 实现&#xff1a; const wx require(weixin-js-sdk) const jsApiList [ getLocation ]/*** 获取定位* param {*} configData 接口获取*…