Vue中axios跨域請求解決方法


Vue中axios跨域請求解決方法

前言

跨域 :指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript施加的安全限制。

同源 是指,域名,協議,端口均相同,瀏覽器執行 js 腳本時,會檢查這個腳本屬於哪個頁面,如果不是同源頁面,就不會被執行。

以下舉例:

(1)http://www.123.com/index.html 調用 http://www.123.com/server.php (非跨域)

(2)http://www.123.com/index.html 調用 http://www.456.com/server.php (主域名不同:123/456,跨域)

(3)http://abc.123.com/index.html 調用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

(4)http://www.123.com:8080/index.html 調用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

(5)http://www.123.com/index.html 調用 https://www.123.com/server.php (協議不同:http/https,跨域)

(6)localhost和127.0.0.1雖然都指向本機,但也屬於跨域。

  

一,前端解決之 代理

僅開發環境下建議如此。。

1. vue-cli 2.x 版本解決方法如下

(1) Vue 的 config 文件夾下的 index.js 文件中,在 proxyTable
對象中書寫跨域配置項:將以 /api 開頭的請求地址基礎URL替換為 http://localhost:8888

(2)將 axios 的 baseURL 改為 /api

2. vue-cli 3.x 版本解決方法如下

(1)在項目根目錄下創建全局配置文件 vue.config.js

(2)在配置文件中書寫跨域配置(如下圖)

(3)將 axios 的 baseURL 改為 /api

二,后端springboot項目解決之 配置項

推薦在服務端進行跨域相關配置,在項目中新建允許跨域配置類,如下圖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM