vue-cli设置proxy代理

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;
	  }
	}
}
要在Vue项目中配置反向代理,首先需要使用Vue CLI进行打包。Vue CLI是一个用于快速搭建Vue项目的工具,它提供了一些默认的配置文件和命令。以下是步骤: 1. 安装Vue CLI:通过npm全局安装Vue CLI的最新版本,命令是 `npm install -g @vue/cli` 2. 创建Vue项目:使用Vue CLI创建一个新的Vue项目,命令是 `vue create project-name`,其中project-name是你想要给项目起的名字。 3. 安装依赖:进入项目目录,运行 `npm install` 安装项目所需的依赖包。 4. 配置反向代理:在项目根目录中找到vue.config.js文件,如果没有就手动创建一个。在vue.config.js文件中添加以下代码: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:3000', // 目标服务器地址 ws: true, changeOrigin: true }, '/foo': { target: 'http://localhost:8080', ws: true, changeOrigin: true } } } } ``` 上述配置的意义是将以`/api`开头的请求代理到`http://localhost:3000`上,将以`/foo`开头的请求代理到`http://localhost:8080`上。你可以根据实际需求调整配置。 5. 重新启动项目:运行`npm run serve`重新启动项目,在开发环境中进行测试,代理请求会被转发到目标服务器。 6. 打包上线:当项目开发完成后,可以通过运行`npm run build`来进行项目打包。打包完成后,将生成的dist目录中的文件部署到服务器上即可实现项目的上线。 以上就是使用Vue CLI配置反向代理的步骤。通过反向代理,我们可以在开发环境中轻松模拟后端接口,便于前端开发与后端接口的对接工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值