详解vue-cli 接口代理配置
本文介绍了vue-cli接口代理配置,分享给大家,具体如下:
一些同学在配置接口代理时,会有疑问我配置成功了为什么接口还是不通,其实代理已经成功只是接口访问地址规则没搞清楚
下面以本地测试为栗子向大家介绍
一些基本操作这里就不介绍了
找到vue-cliconfig文件夹下的index.js 这是是配置接口规则的文件同目录下建立proxyConfig.js 一些同学习惯直接在原文件修改,也是可以但推荐使用新建文件的方式:
module.exports={ proxyList:{ '/api':{ target:'http://localhost:3000',(这里是代理接口的位置) changeOrigin:true,(允许跨域,如果这不写,调用接口接口时会有跨域错误说缺少请求头) pathRewrite:{'^/api':''}(路由规则下面详细介绍) } } }
******路由规则*******
上述代码执行之后,意思就是只要在接口中看到‘/api‘会自动变成我们设置的地址,那么我们在设置的时候可以规范接口书写标准就用到了这个属性pathRewrite路径重写{'^/api':''}是指你想让路由变成什么样子,如果是空那么在解析时如果我们的接口写的是$http.get('/api/good')那么在服务端我们将会看到/good的访问,如果此时在服务端并没有相应的路由匹配,客服端就会显示报错,端口号还是客户端的端口号,所以很多同学就错觉没有起作用,同理如果我们设置{'^/api':'/api'}那么在服务端将会看到/api/goods的接口访问,意思就是不仅将/api自动解析成代理地址,还会作为服务端的路由展示。
另外在设置路由规则注意分隔符/ 有些同学喜欢这样写target:'http://localhost:3000/',自己写端口后面加上一个分隔符,会发现路由对不上,这时你需要在命名的时候也要加上‘/'路由规则也要加上‘/'接口才能对,不然会发现请求接口的时候多了一个分隔符如:'/api//goods'。
设置完之后,在index.js里面引入proxyConfig.js,设置proxyTable完成设置
constproxyConfig=require('./proxyConfig') module.exports={ dev:{ env:require('./dev.env'), host:'localhost', port:8188, autoOpenBrowser:true, assetsSubDirectory:'static', assetsPublicPath:'/', proxyTable:proxyConfig.proxyList, cssSourceMap:false, } }
请求时这样写
axios.get('/api/goods').then((res)=>{console.log(res.data);}}).catch((err)=>{console.log(err);}})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。