Vue-cli proxyTable如何解决开发环境的跨域问题
和后端联调时总是会面对恼人的跨域问题,最近基于Vue开发项目时也遇到了这个问题,两边各自想了一堆办法,查了一堆资料,加了一堆参数,最后还得我把自己的localhost映射成上线时将要使用的域名。
今天翻看代码时,突然发现vue-cli的config文件里有一个参数叫proxyTable,看这个名字就感觉能解决问题,于是我就去搜了一下,果然。在vuejs-templates,也就是vue-cli的使用的模板插件里,有关于API proxy的说明,使用的就是这个参数。
https://vuejs-templates.github.io/webpack/proxy.html
这个参数主要是一个地址映射表,你可以通过设置将复杂的url简化,例如我们要请求的地址是api.xxxxxxxx.com/list/1,可以按照如下设置:
proxyTable: { '/list': { target: 'http://api.xxxxxxxx.com', pathRewrite: { '^/list': '/list' } } }
这样我们在写url的时候,只用写成/list/1就可以代表api.xxxxxxxx.com/list/1.
那么又是如何解决跨域问题的呢?其实在上面的'list'的参数里有一个changeOrigin参数,接收一个布尔值,如果设置为true,那么本地会虚拟一个服务端接收你的请求并代你发送该请求,这样就不会有跨域问题了,当然这只适用于开发环境。增加的代码如下所示:
proxyTable: { '/list': { target: 'http://api.xxxxxxxx.com', changeOrigin: true, pathRewrite: { '^/list': '/list' } } }
vue-cli的这个设置来自于其使用的插件http-proxy-middleware
github:https://github.com/chimurai/http-proxy-middleware
深入了解的话可以看该插件配置说明,似乎还支持websocket,很强大的插件。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上就是Vue-cli proxyTable如何解决开发环境的跨域问题的详细内容,更多请关注其它相关文章!
上一篇: Laravel5.5及以上版本多环境.env配置读取
下一篇: JS获取时间的方法
推荐阅读
-
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
-
vue-cli开发环境实现跨域请求的方法
-
使用proxytable 配置解决 vue-cli 的跨域请求问题【推荐】
-
如何在vue里面优雅的解决跨域(路由冲突问题)
-
阿里P7架构师是如何解决跨域问题的!你有遇到吗?
-
如何快速解决JS或Jquery ajax异步跨域的问题
-
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
-
开发中解决Access-Control-Allow-Origin跨域问题的Chrome神器插件,安装及使用
-
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
-
Spring Boot 2.X 如何优雅的解决跨域问题?