【vue隨手筆記】webpack解決跨域

前言:跨域問題一直是一個頭疼的問題,這里需要詳細(xì)做一篇文章來記錄我解決方式。

webpack 跨域,在這里整理了一下邏輯首先不是為了axios庫來進(jìn)行跨域的,而是直接通過node的webpack設(shè)置代理來完成跨域的。

1、設(shè)置自定義域:

在config目錄下,找到dev.env.js 文件:


文件目錄.png

通過添加:

    API_HOST:"http://your.host:yourPort/"

例如:


如圖所示.png

注意:這里一定要填寫好全地址的域名或調(diào)試的ip地址,不要像很多博客中一樣選擇index中替代的地址,這里把步驟放到第一步,做完全強(qiáng)調(diào)!

2、設(shè)置index

在config目錄下找到index.js文件:


文件目錄.png

設(shè)置dev下的proxyTable

 proxyTable: {
      '/selfName': {
        target: 'http://your.host:yourPort/',
        changeOrigin: true,
        pathRewrite: {
          '^/selfName': '/'
        }
      }
    },

例如:


如圖所示.png

3、設(shè)置baseUrl

點(diǎn)擊這里查看如何設(shè)置BASE_URL
現(xiàn)在將baseurl 改為 :

  const BASE_URL = /selfName/xxx/xxxx

例如:


如圖所示.png

注意:此處/app 和target與上面配置的API_HOST 對應(yīng)

4、設(shè)置axios的BASE_URL

在route 目錄下的index.js中,這樣使用:

import axios from "axios";
axios.defaults.baseURL = net.BASE_URL // 這里的net參考之前博客如何設(shè)置的靜態(tài)全局常量

以上方法完全完成了dev 調(diào)試的跨域問題,如果是正式版打包的項(xiàng)目需要來進(jìn)行跨域,那么得找到如圖所示的文件:

prod文件.png

回到第一個步驟開始逐步往后重新配置即可實(shí)現(xiàn)。

5、cordova項(xiàng)目中,運(yùn)行在模擬器上的跨域請求:

這里回到BASE_URL上,只需要在原來修改的BASE_URL還原為全域名或者全地址的URL即可,毋須額外操作。

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

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

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