Vue-cli proxyTable 解決開發環境的跨域問題詳解,vue-cliproxytable

來源:互聯網
上載者:User

Vue-cli proxyTable 解決開發環境的跨域問題詳解,vue-cliproxytable

和後端聯調時總是會面對惱人的跨域問題,最近基於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,很強大的外掛程式。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.