首頁 >web前端 >js教程 >Vue-cli proxyTable如何解決開發環境的跨網域問題

Vue-cli proxyTable如何解決開發環境的跨網域問題

不言
不言原創
2018-06-29 17:20:532207瀏覽

本篇文章主要介紹了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.js前後端資料互動之提交資料的操作

##如何解決vue- cli中stylus無法使用的問題

#

以上是Vue-cli proxyTable如何解決開發環境的跨網域問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn