vue中axios配置代理的倆種方式及優缺點


概述:Axios 是一個基於 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中

當我們使用vue向服務器發送AJAX請求時,我們會遇到跨域問題,一般跨域的解決方案有倆種,一種是官方的CORS,還有一種就是利用<script>中的src(就是jsonp),

在vue中則可以使用代理服務器來解決跨域的問題。

接下來有倆種方法的展示和介紹:

在vue.config.js里面進行配置
一:

devServer: {
        proxy:'http://localhost:5000'     //代理服務器的目標的基礎路徑
    }
 

二:

devServer: {
        proxy: {
            '/first': {
                target: 'http://localhost:5000',   //代理目標的基礎路徑
                pathRewrite: { '^/first': '' },      //重寫路徑,將代理服務器發送給服務器的請求路徑進行更改,這樣就可以讓服務器收到的請求正常
                ws: true,     //用於支持websocket
                changeOrigin: true     //用於控制請求頭中的host值
               
            },
        }
    }
但是這種需要在配置axios的路徑的時候,在后方加入設置好的前綴
例:
methods: {
    add(){
      axios.get('http://localhost:8080/first/students').then(
        response=>{console.log("請求成功了",response.data)},
        error =>{console.log("請求失敗了",error.message)}
      )
    }
  },
區別於優缺點:
第一種優點:配置相對簡單
缺點:只能配置一個代理,就是當后台服務器超過一台的時候,便不再適用,而且當你前端資源(public)上面如果有名字相同的文件,vue會自動將本地的資源視為優先,則會導致你請求后台的數據變成你自己曾經寫的公共數據,獲取不到后台的數據,則不能靈活的控制是否進行代理。
第二種優點:可以配置多個代理,而且還可以靈活的控制是否進行代理,也通過這樣控制是否進行代理,加入了就進行代理,優先后台的資源,不加則只會獲取前端資源,前端資源里面沒有則報錯
缺點:配置相對復雜一點點,而且需要加前綴
  


免責聲明!

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



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