vue-cli设置proxy代理

vue-cli设置proxy代理Proxy 是什么 proxy 是 ES6 中就存在的 用于修改某些操作的默认行为 可以理解成在目标对象前设一个拦截层 因此也叫 代理器 如果你的前端应用和后端 API 服务器没有运行在同一个主机上 你需要在开发环境下将 API 请求代理到 API 服务器 这个问题可以通过 vue config js 中的 devServer proxy 选项来配置 Proxy 的语法 ES6 原生提供的 Proxy 语法很简单 用法如下 letproxy newProxy target handler 如

Proxy是什么?

proxy是ES6中就存在的,用于修改某些操作的默认行为,可以理解成在目标对象前设一个拦截层,因此也叫“代理器”。

如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。

Proxy的语法

ES6 原生提供的 Proxy 语法很简单,用法如下:

let proxy = new Proxy(target, handler); 

如何配置proxy

找到 vue.config.js 文件,添加以下配置

module.exports = { 
    devServer: { 
    port: '8081', // 设置端口号 proxy: { 
    '/api': { 
    target: 'http://ahbcht.com', //API服务器的地址 ws: true, //代理websockets changeOrigin: true, // 是否跨域,虚拟的站点需要更管origin pathRewrite: { 
    // '^/api'是一个正则表达式,表示要匹配请求的url中,全部'http://localhost:8081/api' 转接为 http://localhost:8081/ '^/api': '', } } }, } } 

axios 请求

getNewsList() { 
    axios.get('/api/getData') .then((res) => { 
    console.log(res) }) } 

更详细内容,可以查阅 vue-cli 官网文档

需要注意的问题

  • 代理只对 devServer 配置中的端口请求生效
  • axiosbaseURL 如果被配置过,如:baseURL="http://192.168.100.1/9000",此时proxy代理不生效

上线 nginx 配置

vue-cli 设置代理后,上线时也需要配置代理,以下以 nginx 为例

http {
	server {
	  listen 8081; 
	  server_name localhost 127.0.0.1 10.20.11.153;  # 站点域名

	  location / {
		root   ../road_net_ui;
		index  index.html index.htm;
	  }
	  
	  location /api {
        proxy_pass http://10.20.11.153:1026;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
	  }
	  
	  location /webhdfs {
        proxy_pass http://10.20.10.171:9870;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
	  }
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228457.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午6:58
下一篇 2026年3月16日 下午6:58


相关推荐

  • python微信推送{u‘errcode‘: 40008, u‘errmsg‘: u‘invalid message type rid: 6111061f-19703d5b[通俗易懂]

    python微信推送{u‘errcode‘: 40008, u‘errmsg‘: u‘invalid message type rid: 6111061f-19703d5b[通俗易懂]记录一下前两天自己搞的一个蠢事,当时是要做一个微信信息推送,我先是按照微信的接口文档和网上的一些例子把代码写好了,测试的时候一直报这个40008,看微信接口文档又是说消息类型不对,大概就是说你给的data跟你定义的模板格式不对但是我都对了好几次,发现没问题,后面检查了一下接口的链接,发现跟接口文档里的不一样,应该是在复制别人的时候复制错了,换成文档里的链接后就正常了。所以,以后遇到这种{u’errcode’:40008,u’errmsg’:u’invalidmessagetyperid:

    2022年6月10日
    69
  • 高等数学学习目录

    高等数学学习目录第一章函数与极限第一节映射与函数初等函数双曲函数第二章导数的概念基本初等函数的倒数导数的四则运算第四章不定积分不定积分概念与性质天子骄龙

    2022年8月6日
    12
  • 【Android Tricks 6】ViewPager首页与尾页的滑动动作响应[通俗易懂]

    【Android Tricks 6】ViewPager首页与尾页的滑动动作响应

    2022年1月28日
    48
  • vscode取消注释的快捷键_vscode解除注释

    vscode取消注释的快捷键_vscode解除注释注释CTRL+K+C取消注释CTRL+K+U

    2022年8月15日
    7
  • 通配符和通配符掩码

    通配符和通配符掩码路由中的通配符1.路由配置中的通配符  在路由器的配置中,经常出现通配符。和子网掩码一样,都是以“0”或“1”表示,不过与子网掩码所表示的意思却不一样。  子网掩码所表示的是IP的网络位和主机位,而通配符则表示与IP是否匹配。  通配符同样是32位,和IP地址一一对应,“0”位代表精确匹配,而“1“位代表不许匹配。例如路由器EIGRP的配置中:  RouterA(co…

    2022年7月24日
    15
  • css选择器有哪些?[通俗易懂]

    css选择器有哪些?[通俗易懂]一、写在前面css选择器有很多,但是常用到的也就几个,今天总结一下。二、具体选择器2.1、id选择器#myId{}2.2、类选择器.myClass{}2.3、标签选择器p,h1{}2.4、后代选择器divh1{}2.5、子选择器div>h1{}2.6、兄弟选择器(所有的兄弟)ul~h1{}2.7、相邻兄弟选择器ul+h1{}2.8、属性选择器li[name=’sss’]{}2.9、伪类选择器h1:hover{}2.10h

    2025年8月23日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号