Vue-cli proxyTable 解決開發(fā)環(huán)境的跨域問題

在前后端分離進行開發(fā)時,跨域問題是必然存在的,之前一直使用的谷歌瀏覽器跨域,最近在使用vue-cli進行開發(fā)時,同樣遇到了跨域問題,當(dāng)然設(shè)置谷歌瀏覽器跨域也是可行的,但是vue-cli使用了node等一系列的工具,那合嘗不試試新東西呢。

配置代理:

 找到config目錄下的index.js文件,文件中有這樣一行代碼proxyTable: {},這是作者給開發(fā)者留下的空缺,用來配置一些代理規(guī)則
  proxyTable: {
        '/api': {
            target: 'http://www.xxx.com', // 你接口的域名
            secure: false,      // 如果是https接口,需要配置這個參數(shù)
            changeOrigin: true,     // 如果接口跨域,需要進行這個參數(shù)配置
            pathRewrite: {        //重寫接口地址
              '^/api': '/'
            }
        }
    }

其中 '/api' 為匹配項,target 為被請求的地址,這樣只要接口地址是以"/api/*"開頭的,都會走代理接口,但是問題來了,我們項目的接口開頭字段不統(tǒng)一,那我們只能手動給每個ajax請求接口前面加上"/api",如果使用了 axios,可以全局配置一個 baseURL,這樣就不用挨個兒修改 url 了

axios.defaults.baseURL = '/api'

此時我們來看看ajax請求變成什么樣了

設(shè)置代理后的ajax請求

納尼,404了,因為在 ajax 的 url 中加了前綴 '/api',而原本的接口是沒有這個前綴的,所以需要通過 pathRewrite 來重寫地址,將前綴 '/api' 轉(zhuǎn)為 '/'

proxyTable: {
        '/api': {
            target: 'http://www.xxx.cn', // 你接口的域名
            secure: false,      // 如果是https接口,需要配置這個參數(shù)
            changeOrigin: true,     // 如果接口跨域,需要進行這個參數(shù)配置
            pathRewrite: {        //重寫接口地址
              '^/api': '/'
            }
        }
    }

我們再來看看網(wǎng)絡(luò)請求

重寫地址后的請求

可以看到接口200了,雖然我們加了前綴,但是真實的請求是沒有前綴的。

寫這篇文章只是記錄下自己的學(xué)習(xí)記錄,始終堅信一句話,我們都是站在巨人的肩膀上作代碼的搬運工,沒有什么不可能。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容