Vue-cli proxyTable 解決開發環境的跨域問題(轉)

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,能夠按照以下設置:javascript

proxyTable: {
  '/list': { target: 'http://api.xxxxxxxx.com', pathRewrite: { '^/list': '/list' } } }

這樣咱們在寫url的時候,只用寫成/list/1就能夠表明api.xxxxxxxx.com/list/1.
那麼又是如何解決跨域問題的呢?其實在上面的'list'的參數裏有一個changeOrigin參數,接收一個布爾值,若是設置爲true,那麼本地會虛擬一個服務端接收你的請求並代你發送該請求,這樣就不會有跨域問題了,固然這隻適用於開發環境。增長的代碼以下所示:html

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,很強大的插件。vue

 

筆者推薦淘寶內部優惠券java

相關文章
相關標籤/搜索