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

vue.config.js devServer中changeOrigin的作用

问题

vue开发时,为了解决前端跨域问题,通常在vue.config.js配置 devServer proxy

devServer: {proxy:{'/api': {target: 'http://b.com',changeOrigin: false},},
}

官方文档http-proxy options对changeOrigin的解释

option.changeOrigin: true/false, Default: false - changes the origin
of the host header to the target URL

比如,浏览器地址栏是http://a.com/some/path,那么/api开头的请求会被代理到http://b.com

  • 未配置changeOrigin(默认为false)
    • 那么b.com收到的http 请求头中origin是http://a.com,也就是说默认的,与地址栏中的一样;
  • changeOrigin:true
    • b.com收到的请求头中origin是http://b.com

origin vs host

  • origin通常用来限制跨域,相应的服务器端需要响应Access-Control-Allow-Origin:“some.domain.com”,浏览器据此判断是否允许跨域;some.domain.com可以是通配符*,表示允许所有域名跨域;
  • host用来实现基于域名的虚拟主机,可参考Name-based virtual hosts

总结

ajax跨域请求时,浏览器知道请求是跨域,给请求头中添加origin,服务器端收到后,可返回Access-Control-Allow-Origin,浏览器据此判定是否允许跨域;当然了还有Access-Control-Allow-Credentials、Access-Control-Allow-Headers、Access-Control-Allow-Methods;
使用代理后,ajax请求是同域请求,浏览器不会在请求头中添加origin,changeOrigin false或者true,只能影响接收者收到的origin,不能影响是否跨域,除非服务器端做了限制。也就是说,只要配置了devServer,changeOrigin 配置仅影响请求头中的origin;

http://www.lryc.cn/news/447253.html

相关文章:

  • 基于Ubuntu 20.04 LTS上部署MicroK8s(最小生产的 Kubernetes)
  • Spring:项目中的统一异常处理和自定义异常
  • 有点快要跟不上时代的感觉
  • 【pytorch】pytorch入门4:神经网络的卷积层
  • 【机器学习】探索LSTM:深度学习领域的强大时间序列处理能力
  • QT学习笔记之文件操作
  • Mybatis XML配置文件操作数据库
  • Ansible-template模块动态生成特定文件
  • 【Hadoop】【vim编辑器】【~/.bashrc 文件】如何编辑
  • vs code自动报错
  • 详细分析Nginx中的proxy_pass 末尾斜杠
  • 数据结构:双指针—移动0(OJ283)
  • LeetCode - 850 矩形面积 II
  • Jenkins Pipeline 中通过勾选参数来控制是否构建 Docker 镜像
  • C++入门基础知识86(实例)——实例11【计算自然数之和】
  • ChatGPT与R语言融合技术在生态环境数据统计分析、绘图、模型中的实践与进阶应用
  • OpenAi以及Dify结合生成Ai模型
  • 【漏洞复现】用友 UFIDA /portal/pt/file/upload 任意文件上传漏洞
  • C:内存函数
  • 【Web】御网杯信息安全大赛2024 wp(全)
  • VC++同时处理ANSI和Unicode字符集,除了使用TCHAR和_T()宏外,还有其他方法可以实现吗?
  • MATLAB定位程序与讲解【专栏介绍】
  • 机器学习3--numpy
  • Linux之我不会
  • 音视频整体解码流程和同步流程
  • 1.2 HuggingFists安装说明-Linux安装
  • 四,MyBatis-Plus 当中的主键策略和分页插件的(详细实操使用)
  • Win32打开UWP应用
  • C# C++ 笔记
  • 关于最小二乘法