devServer changeOrigin不管用

news/2025/3/18 12:06:15

devServer changeOrigin属性是修改后端服务器接收到的 headers 里的 Host 属性

vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: false
      }
    }
  }
})

后端 headers

{
  'x-forwarded-host': '192.168.0.111:8080',
  'x-forwarded-proto': 'http',
  'x-forwarded-port': '8080',
  'x-forwarded-for': '192.168.0.111',
  referer: 'http://192.168.0.111:8080/',
  connection: 'close',
  origin: 'http://192.168.0.111:8080',
  'content-length': '27',
  'content-type': 'application/json',
  'accept-encoding': 'gzip, deflate',
  'accept-language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
  accept: 'application/json, text/plain, */*',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0',
  host: '192.168.0.111:8080'
}

改为 hangeOrigin: true 后 headers

{
  'x-forwarded-host': '192.168.0.111:8080',
  'x-forwarded-proto': 'http',
  'x-forwarded-port': '8080',
  'x-forwarded-for': '192.168.0.111',
  referer: 'http://192.168.0.111:8080/',
  connection: 'close',
  origin: 'http://192.168.0.111:8080',
  'content-length': '27',
  'content-type': 'application/json',
  'accept-encoding': 'gzip, deflate',
  'accept-language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
  accept: 'application/json, text/plain, */*',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0',
  host: 'localhost:3000'
}

可以看到 host 由 host: '192.168.0.111:8080' 变为后端服务器地址 host: 'localhost:3000'

通过上面的探究,基本可以得出以下结论:

  1. changeOrigin 配置项用来修改 host header,而非 origin header
  2. Host header 用来处理虚拟主机的问题,和跨域无关
  3. 一般情况下,设置代理时可以忽略这个配置项,保持默认即可
  4. 特殊情况下,很可能后端服务就用 host 做校验了,此时根据实际情况去设置

http://www.niftyadmin.cn/n/5891334.html

相关文章

【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 8.2.1AWS OpenSearch 无服务器方案深度解析与实践指南1. Serverless架构的核心价值与行业趋势1.1 传统Elasticsearch集群的运维挑战1.2 Serverless技术演进路线技术特性对比…

C++编译问题——1模板函数的实现必须在头文件中

今天编译数据结构时&#xff0c;遇见一个编译错误 假设你有一个头文件 SeqList.h 和一个源文件 SeqList.cpp。 SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <stdexcept> #include <iostream>template<typename T> class SeqList { private:sta…

小程序网络大文件缓存方案

分享一个小程序网络大图加载慢的解决方案 用到的相关api getSavedFileList 获取已保存的文件列表&#xff1b;getStorageSync 获取本地缓存&#xff1b;downloadFile 下载网络图片&#xff1b;saveFile 保存文件到本地&#xff1b;setStorage 将数据储存到小程序本地缓存&…

生成式AI+安全:API防护的“进化革命”——从被动防御到智能对抗的技术跃迁

在生成式AI重塑数字世界的今天&#xff0c;API作为数据流动的“数字血管”&#xff0c;其安全性已成为企业生死存亡的关键。行业数据显示&#xff0c;2025年全球77%的企业将深度整合生成式AI技术&#xff0c;承载着75%互联网流量的API体系&#xff0c;正驱动着超2000亿美元的数…

跟网型逆变器小干扰稳定性分析与控制策略优化simulink仿真模型和代码(包含完整仿真报告)

关注&#xff1a;“电击小子程高兴的MATLAB小屋”获取巨额优惠 1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2016Rb&#xff09;软件。建议采用matlab2016 Rb及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff09; 近年来&#xff0c…

使用Python在Word中生成多种不同类型的图表

目录 工具与环境配置 在 Word 中创建图表的步骤 在Word中创建柱形图 在Word中创建条形图 在Word中创建折线图 在Word中创建饼图 在Word中创建散点图 在Word中创建气泡图 在 Word 文档中插入图表不仅能直观呈现数据&#xff0c;还能提升文档的可读性和专业性。常见的图表…

LInux基础--apache部署网站

httpd的安装 yum -y install httpdhttpd的使用 启动httpd systemctl enable --now httpd使用enable --now 进行系统设置时&#xff0c;会将该服务设置为开机自启并且同时开启服务 访问httpd 创建虚拟主机 基于域名 在一台主机上配置两个服务server1和server2&#xff0c;其…

c++ 嵌套名字空间和匿名名字空间

c 嵌套名字空间和匿名名字空间 一、嵌套名字空间&#xff08;Nested Namespaces&#xff09;核心特性示例 二、匿名名字空间&#xff08;Anonymous Namespace&#xff09;核心特性示例 三、关键区别与注意事项注意事项 四、总结 一、嵌套名字空间&#xff08;Nested Namespaces…