废话不多说,直接先上代码

const proxy = require("http-proxy-middleware");module.exports = function(app) {app.use(proxy("/mid-api/**", {target: "http://api.server.com/",changeOrigin: true,pathRewrite: {'^/mid-api': '',},onProxyReq(proxyReq, req, res) {proxyReq.setHeader('cookie', 'SERVER_TOKEN=153b8baf-4b2d');}}));app.use(proxy("/api-2/**", {target: "https://easy-mock.com/mock/5c0f31837214cf627b8d43f0/",changeOrigin: true,}));
};

简单解释一下:

  1. 以上代码定义了两个接口路径代理,/mid-adp/ 和 /api-2/ 只要是匹配到这两个路径的请求,都会代理到target 路径上。
  2. pathRewrite:顾名思义,就是重写路径,如上例子:pathRewrite: {'^/mid-api': ''} // 最终会把/mid-api替换为空。比如我们请求的路径是:http://localhost:3000/mid-api/user/user-info,最终发出去的请求路径是:http://localhost:3000/user/user-info。这有什么好处呢?比如项目中你A模块需要代理到A服务器,B模块代理到B服务器,但接口地址都是同一个(user/user-info),就可以通过这个区分开来
  3. 重点说一下onProxyReq(),非常重要,我们服务器通常会通过cookie或者token来验证用户身份,那我们就可以通过代理时给请求头加入相应的信息,这样就可以通过服务器的身份验证了
onProxyReq(proxyReq, req, res) {proxyReq.setHeader('cookie', 'ULS_TOKEN=1234567890');}

顺便说一下,如果是 create-react-app(v2.0以上) 项目设置代理方法:

  1. 最简单就是在package.json加 proxy属性,但只能是代理服务器地址的字符串:"proxy": "abc.com.baidu.com",这样请求自动会使用这个代理。
  2. 需要复杂的设置,那就要在src目录下创建一个js文件:setupProxy.js,然后把上面的代码加进去就可以了,请求自动就会走设置的代理,亲测有效

通过 http-proxy-middleware 跨域代理与添加自定义cookie相关推荐

  1. 全局配置axios、axios 拦截器 和 proxy 跨域代理

    目录 一.全局配置axios 1. 为什么要全局配置 axios 2. 如何全局配置 axios 3. 在 vue3 的项目中全局配置axios ​ 4. 在 vue2 的项目中全局配置 axios ...

  2. vue3.0-axios拦截器、proxy跨域代理

    目录 1. vue-cli 1)vue-cli 2)安装vue-cli ①解决Windows PowerShell不识别vue命令的问题 3)创建项目 4)基于vue ui创建vue项目 5)基于命令 ...

  3. 【react 跨域代理】

    react 跨域代理 提示:以下是本篇文章正文内容,下面案例可供参考 一.package.json 里添加"proxy": "http://localhost:5000& ...

  4. vue加跨域代理静态文件404_vue-cli 设置跨域代理 线上地址报404

    vue-cli 设置跨域代理,本地正常访问,线上地址报404.这是什么原因? vue-cli中跨域代理设置: module.exports = { dev: { // Paths assetsSubD ...

  5. vue-cli设置跨域代理 + 开发/生成环境简单请求接口设置

    1.设置dev.proxyTable实现开发环境的跨域代理: 在config文件夹下index.js文件内: 1 module.exports = { 2 dev: { 3 proxyTable: { ...

  6. vue-cli2.x统一配置接口请求地址和开发环境的跨域代理

    1.修改config/dev.env.js(开发环境的baseURL地址统一配置) 2.修改config/prod.env.js(线上环境的baseURL地址统一配置) 3.修改config/inde ...

  7. 前台关于跨域的警告A cookie associated with a cross-site resource at .........,代理服务器

    前台关于跨域的警告A cookie associated with a cross-site resource at -,代理服务器 A cookie associated with a cross- ...

  8. 面试官问:跨域请求如何携带cookie?

    大家好,我是若‍川.持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列 ...

  9. 谷歌浏览器升级到91出现跨域问题,导致cookie保存的sessionId不一样

    先来说一下问题: 谷歌浏览器升级到91之后出现一个跨域问题,导致cookie保存的接口sessionId不一致,从而后台出现session不一致问题.如下图: 这是第一个接口: 这是第二个接口 这本应 ...

  10. Ajax跨域请求时携带cookie

    在使用Ajax技术发送跨域请求时,默认情况下是不会在请求中携带cookie信息的. 如果需要在跨域请求中携带cookie,则需要对客户端和服务器都进行设置. 客户端代码: xhr.withCreden ...

最新文章

  1. OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内
  2. oracle 快速上手,Oracle学习笔记:快速上手
  3. linux网卡O I流量查询,查看linux server网络I/0流量的shell脚本
  4. mysql 排序后 下一条记录_Mysql如何使用order by工作
  5. java学习记录【day12】
  6. document.compatMode的CSS1compat
  7. 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
  8. datetime-local 传时间戳_传世经典,此生必读——《呼兰河传》
  9. 视频教程-程序员面试宝典——助你拿到好offer-招聘/面试
  10. 载波同步matlab程序,Gardner算法实现基带信号位同步的原理和MATLAB程序讲解
  11. 制作RPG游戏的部分核心代码分析
  12. 中国互联网发展报告(2021)
  13. 购买服务器 架设代理服务器 Android studio设置代理
  14. ros服务器打开网页变慢了,解决ros 在计算机没有限速情况下,有几个网站打开很慢,或者打不开。...
  15. Error: The project seems to require yarn but it‘s not installed.
  16. siki学院的飞机大作战UE4.26代码
  17. MOS 的TJ TA TC和功耗之类的计算
  18. Python读取中文路径时的处理
  19. [2023年的每一天]1. 15 看了一天的 B站
  20. [读书笔记]自控力内容整理

热门文章

  1. 云计算 ——虚拟化认识
  2. 【读书笔记】关键影响力:如何调动团队力量
  3. 每日一题《青蛙跳步》
  4. 概率论与数理统计——几何分布的无记忆性证明
  5. 爬虫第四关——寻找周杰伦
  6. 【金融项目】尚融宝项目(七)
  7. 安装U8后服务器开机加载信息慢,用友U8 安装ADSL后,连接服务器非常慢
  8. 马克思主义基本原理概论-考点串讲
  9. 如何注册阿里大于申请签名和短信模板
  10. ORB-SLAM2代码阅读笔记(十):sim3求解