Vue學習筆記(5) 跨域

2021-09-25 22:58:37 字數 1290 閱讀 3554

目錄跨域

解決proxytable 與 axios

在學習element ui的過程中,嘗試一下有界**的用法:

不出意外,遇到了跨域問題,感覺還是比較常見的,於是打算記錄一下方便日後學習。

瀏覽器的同源策略規定某域下的客戶端在沒明確授權的情況下,不能讀寫另乙個域的資源,而對於我們熟悉的前後端分離專案,前後端常常不在乙個伺服器內或者在乙個伺服器的不同埠下,前端想要獲取後端的資料,就必須發起請求,如果不做一些處理,就會受到瀏覽器同源策略的約束。

在開發環境中,有一種常見的解決vue中請求資料時跨域問題的方法。

問題類似如下,都是因為跨域問題導致的。

.....對於vuecli2的專案,在config資料夾下的index.js中找到proxytable欄位,新增如下型別的**即可:

dev: 

},csssourcemap: false

}

這樣相當於吧本地8080埠的乙個請求**到了這一網域名稱下。

有趣的是由於vuecli3的更新,專案中的index.js檔案被放在了專案依賴中,這時我們只需在根目錄下建立乙個"vue.config.js"檔案,把proxytable的部門放進去即可,對於我的專案:

/*

@date: 2019/8/7 0:39 @author: asen wang

@contact email: [email protected]

@content:

*/module.exports = ,

},},

},};

然而因為我使用的ts寫的該專案,在webstorm中建立該檔案時,我建立成了"vue.config.ts",不出意外的無法載入,這個大家使用ts的也應該注意。

回到proxytable中,目標介面網域名稱,對於我來說就是"",同時我使用了axios,在vue檔案中如下配置:

created(),

methods: );

},},

注意的是,這裡我已經將""替換成了"/api",同時我們要保證在dom渲染之前拿到資料,因此使用到了鉤子函式created()。

注意,這樣的方法在開發環境中使用即可,但是在生產環境中應該另尋他法,這是後話了。

跨域(學習筆記)

協議 子網域名稱 主網域名稱 埠號中任意乙個不相同時,都算作不同域。跨域是指服務端能收到客戶端請求並正常返回返回結果,結果被瀏覽器攔截。ps 如果是協議和埠問題,前台 無法解決 允許跨域載入資源的標籤 jquery的jsonp ajax 只要伺服器實現了cors介面,就可以實現跨域 要求 瀏覽器 i...

vue學習日記 vue跨域處理

vue跨域的方法一種是直接在config資料夾下的index.js中的dev物件中配置proxytable屬性,另一種是新建乙個proxyconfig.js檔案,然後注入index.js中,本質其實是一樣的。只是後一種將配置單獨寫成了乙個檔案而已。這裡我選擇了第二種寫法。首先在config資料夾下新...

vue 跨域 proxy跨域處理

跨域就是因為同源策略。為了安全的。這裡的配置跨域本質上就是將本地的位址轉換成伺服器需要的真正期望的位址。本地位址 http localhost 8080 api allin policy getproductinfo 伺服器 devserver 本地 http localhost 8080 alli...