欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用反向代理解決跨域問題方案

 更新時間:2023年01月10日 16:59:21   作者:xiaoxiaok  
這篇文章主要為大家介紹了vue使用反向代理解決跨域問題方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

為什么要解決跨域問題

因為瀏覽器有限制,只有同域名同端口號下的數(shù)據(jù)才能拿來用;

那如果想拿到不同域名不同端口號下的數(shù)據(jù)就不行了;

在單文件組件中如何去解決跨域問題

因為服務(wù)器沒有跨域限制,只有瀏覽器有跨域限制,所以我們可以通過我們自己的服務(wù)器去拿回后端服務(wù)器接口的數(shù)據(jù),再傳給前端; 我們自己的服務(wù)器是:啟動單文件組件項目會啟動一臺8080端口號的服務(wù)器;

解決跨域問題需要配置反向代理代碼; 如何配置反向代理代碼:

用axios向后端數(shù)據(jù)接口發(fā)起請求,拿回數(shù)據(jù):

在App.vue中引入axios模塊,沒下載的先下載: 下載:

npm i --save axios 引入 axios模塊:

import axios from 'axios' 發(fā)axios請求:

后端數(shù)據(jù)接口:貓眼驗證中心

mounted () {
    axios.get('/api/mmdb/movie/v3/list/hot.json?ct=%E6%89%AC%E5%B7%9E&ci=120&channelId=4')
    .then(res => {
      console.log(res.data.hot)
    })

配置反向代理

在項目文件夾下新建一個 vue.config.js 的文件,然后寫上下面這段代碼(可參照下面的配置模板文件):

module.exports = {
  //配置反向代理
    port: 8080,
    host: 'localhost', // ip 本地
    open: true,
    proxy: {
      "/api": {
        target: `http://10.43.8.102:55555/`,
        changeOrigin: true,
        ws: true, // 是否代理websockets
        pathRewrite: {
          "/api": ""
        }
      }
    }
}

注意: 寫好配置代碼以后,要重新運行項目,重啟服務(wù)器;

配置模板文件及字段解釋

module.exports = {
    devServer: {
        port: 8080, // 設(shè)置端口號
        host: 'localhost', // ip 本地
        disableHostCheck: true, //是否關(guān)閉用于 DNS 重綁定的 HTTP 請求的 HOST 檢查
        hotOnly: false, // 熱更新
        https: false, // https:{type:Boolean}配置前綴
        open: false, //配置自動啟動瀏覽器
        proxy: null,  //設(shè)置代理
        proxy: { //目的是解決跨域,若測試環(huán)境不需要跨域,則不需要進行該配置
            '/api': { // 攔截以 /api 開頭的url接口
                target: 'http://localhost:5140/api', //目標接口域名
                changeOrigin: true, //是否跨域
                ws: true, //如果要代理 websockets,配置這個參數(shù)
                secure: false, // 如果是https接口,需要配置這個參數(shù)
                // 標識替換
                // 原請求地址為 /api/getData 將'/api'替換''時,
                // 代理后的請求地址為: http://xxx.xxx.xxx/getData
                // 若替換為'/other',則代理后的請求地址為 http://xxx.xxx.xxx/other/getData 
                pathRewrite: { // 標識替換
                    '^/api': ''   //重寫接口 后臺接口指向不統(tǒng)一  所以指向所有/
                }
            }
        }
    },
}

整個配置反向代理的思路

我們要配置反向代理的原因是:因為跨域問題我們直接拿不到跟我們不同域名不同端口號下的數(shù)據(jù),這是瀏覽器的跨域限制,我們不能在瀏覽器上顯示后端的數(shù)據(jù),但是服務(wù)器端沒有跨域限制,所以可以讓我們自己的服務(wù)器(項目運行,會啟動一臺服務(wù)器),去請求后端服務(wù)器,拿到數(shù)據(jù),然后再傳給我們前端。 如何拿呢:按照上面的代碼進行配置,axios.get后面的請求地址,原本是:第一張圖這樣子,

但是我們把前面域名給去掉,往下面這個接口發(fā)請求:

反向代理服務(wù)器的應(yīng)用:往這個接口發(fā)請求,被攔截到了,凡是往這個接口發(fā)請求的,反向代理服務(wù)器,會在前面加上target域名 ,往真實的地址去請求。

配置信息:

只要是前端往‘/api’這個接口發(fā)請求的,前面都加上target里的這個域名,此時我們自己的服務(wù)器就知道最后是往這個地址請求數(shù)據(jù):

解決接口重復(fù)問題

有時候會發(fā)現(xiàn)同一個接口的域名可能不一樣,我們只需要拿指定域名的數(shù)據(jù),比如說“/api”這個接口名字一樣,但是這個接口前面的域名不一樣,也就是兩個不一樣的地址,剛好就“api”這個名字重復(fù)了,如果還像上面那樣配置的話,它就把所有“api”接口的地址前面全加上了一個域名。

解決辦法:我們可以在加一個自定義接口,格式:“/名稱”,例如:前面加個“/yiyi”:

然后在配置文件中加一個屬性:pathRewrite

devServer: {
    proxy: {
      '/yiyi': {
        target: 'https://i.maoyan.com',
        changeOrigin: true,
        //路徑重寫
        pathRewrite: {
          '^/yiyi': ''
        }
      }
    }
  }

把“/api”改成“/yiyi”,然后加上一個pathRewrite屬性,含義是路徑重寫,把自定義這個接口換成空,意思就是先按照“yiyi”這個名稱去選出App.vue里“/yiyi”的接口,選出來后再把加的yiyi接口賦值為空,這樣就可以避免和其他“api”接口的路徑數(shù)據(jù)搞混了,最終拿到的數(shù)據(jù)接口還是:

以上就是vue使用反向代理解決跨域問題方案的詳細內(nèi)容,更多關(guān)于vue反向代理解決跨域問題的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue Element前端應(yīng)用開發(fā)之常規(guī)Element界面組件

    Vue Element前端應(yīng)用開發(fā)之常規(guī)Element界面組件

    在我們開發(fā)BS頁面的時候,往往需要了解常規(guī)界面組件的使用,小到最普通的單文本輸入框、多文本框、下拉列表,以及按鈕、圖片展示、彈出對話框、表單處理、條碼二維碼等等,本篇隨筆基于普通表格業(yè)務(wù)的展示錄入的場景介紹這些常規(guī)Element組件的使用
    2021-05-05
  • Vue實現(xiàn)飛機大戰(zhàn)小游戲

    Vue實現(xiàn)飛機大戰(zhàn)小游戲

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)飛機大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解Webstorm 新建.vue文件支持高亮vue語法和es6語法

    詳解Webstorm 新建.vue文件支持高亮vue語法和es6語法

    這篇文章主要介紹了Webstorm 添加新建.vue文件功能并支持高亮vue語法和es6語法,非常具有實用價值,需要的朋友可以參考下
    2017-10-10
  • 基于vue-seamless-scroll實現(xiàn)無縫滾動效果

    基于vue-seamless-scroll實現(xiàn)無縫滾動效果

    這篇文章主要為大家詳細介紹了基于vue-seamless-scroll實現(xiàn)無縫滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue使用element-ui的el-image的問題分析

    vue使用element-ui的el-image的問題分析

    這篇文章主要介紹了vue使用element-ui的el-image的問題分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • el-table樹形數(shù)據(jù)量過大,導(dǎo)致頁面卡頓問題及解決

    el-table樹形數(shù)據(jù)量過大,導(dǎo)致頁面卡頓問題及解決

    這篇文章主要介紹了el-table樹形數(shù)據(jù)量過大,導(dǎo)致頁面卡頓問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue 之 .sync 修飾符示例詳解

    vue 之 .sync 修飾符示例詳解

    這篇文章主要介紹了vue 之 .sync 修飾符的相關(guān)知識,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下
    2018-04-04
  • 如何實現(xiàn)無感刷新token

    如何實現(xiàn)無感刷新token

    這篇文章主要介紹了如何實現(xiàn)無感刷新token,當token過期的時候,刷新token,前端需要做到無感刷新token,即刷token時要做到用戶無感知,避免頻繁登錄。下面我們大家一起進入文章看看實現(xiàn)思路即詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Vue實現(xiàn)頁面刷新跳轉(zhuǎn)到當前頁面功能

    Vue實現(xiàn)頁面刷新跳轉(zhuǎn)到當前頁面功能

    在Vue.js應(yīng)用開發(fā)中,有時候我們需要實現(xiàn)頁面的刷新或跳轉(zhuǎn)到當前頁面的功能,這種需求在某些特定場景下非常有用,本文將詳細介紹如何在Vue中實現(xiàn)頁面刷新和跳轉(zhuǎn)到當前頁面的功能,并提供多個示例和使用技巧,需要的朋友可以參考下
    2024-10-10
  • vue異步加載dom元素之后無法獲得的解決

    vue異步加載dom元素之后無法獲得的解決

    這篇文章主要介紹了vue異步加載dom元素之后無法獲得的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論