Vue 配置代理
说明:这里的vue代理是指用vue静态服务器做代理。使用的是 http-proxy-middleware 这个模块(这个模块相当于是node.js的一个插件)。
版本: vue-cli 3.0以上
修改文件位置:根目录下的vue.config.js
代码:
devServer: { proxy: { '/api': { target: 'http://192.168.123.123:8080', // 后台接口地址 ws: true, //如果要代理 websockets,配置这个参数 secure: false, // 如果是https接口,需要配置这个参数 changeOrigin: true, //是否跨域 pathRewrite:{ // 重写路径 '^/api':'' } } } }
vue项目里,我的所有接口的地址都是/api开头的,所以前面用 ‘/api’,如果我的开头是/pc开头,但是接口没有/pc这时候会用到路径重写,下面有介绍。
当node服务器 遇到 以 ‘/api’ 开头的请求,就会把 target 字段里的值加上,那么请求地址就为变成了http://192.168.123.123:8080/api/xxxx/xxx
pathRewrite 表示的意思是 把/api 替换为 空,那么请求地址就为 http://192.168.123.123:8080/xxxx/xxx(如果是/pc,就把pc替换为空)
注意2:在本地查看地址的时候,地址不会更改,还是http://localhost:8090/api/xxx/xxxxx,看起来/api和target的地址没有替换,但实际已经替换了。
刚接触的对pathRewrite不是很懂,把他的中文意思理解为重新写了/api的路径,调用时就不加/api了,这个理解是错误的,他其实就是吧/api替换为空,如果还报错就查一查看看是不是提交的方法问题,比如 get 和 post 没区分开。