devServer changeOrigin不管用

[复制链接]
发表于 2025-10-15 15:18:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
devServer changeOrigin属性是修改后端服务器吸取到的 headers 里的 Host 属性
vue.config.js
  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3.   transpileDependencies: true,
  4.   devServer: {
  5.     proxy: {
  6.       '/api': {
  7.         target: 'http://localhost:3000',
  8.         changeOrigin: false
  9.       }
  10.     }
  11.   }
  12. })
复制代码
后端 headers
  1. {
  2.   'x-forwarded-host': '192.168.0.111:8080',
  3.   'x-forwarded-proto': 'http',
  4.   'x-forwarded-port': '8080',
  5.   'x-forwarded-for': '192.168.0.111',
  6.   referer: 'http://192.168.0.111:8080/',
  7.   connection: 'close',
  8.   origin: 'http://192.168.0.111:8080',
  9.   'content-length': '27',
  10.   'content-type': 'application/json',
  11.   'accept-encoding': 'gzip, deflate',
  12.   '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',
  13.   accept: 'application/json, text/plain, */*',
  14.   'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0',
  15.   host: '192.168.0.111:8080'
  16. }
复制代码
改为 hangeOrigin: true 后 headers
  1. {
  2.   'x-forwarded-host': '192.168.0.111:8080',
  3.   'x-forwarded-proto': 'http',
  4.   'x-forwarded-port': '8080',
  5.   'x-forwarded-for': '192.168.0.111',
  6.   referer: 'http://192.168.0.111:8080/',
  7.   connection: 'close',
  8.   origin: 'http://192.168.0.111:8080',
  9.   'content-length': '27',
  10.   'content-type': 'application/json',
  11.   'accept-encoding': 'gzip, deflate',
  12.   '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',
  13.   accept: 'application/json, text/plain, */*',
  14.   'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0',
  15.   host: 'localhost:3000'
  16. }
复制代码
可以看到 host 由 host: '192.168.0.111:8080' 变为后端服务器地点 host: 'localhost:3000'
通过上面的探究,根本可以得出以下结论:

  • changeOrigin 设置项用来修改 host header,而非 origin header
  • Host header 用来处理处罚假造主机的标题,和跨域无关
  • 一样平常情况下,设置署理时可以忽略这个设置项,保持默认即可
  • 特别情况下,很大概后端服务就用 host 做校验了,此时根据实际情况去设置

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表