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

Vue 調(diào)試訪問(wèn)本地后端接口配置

 更新時(shí)間:2023年06月09日 14:48:41   作者:枸杞泡茶呀  
記錄一下本地測(cè)試前端的時(shí)候怎么訪問(wèn)本地后端接口,文中給大家提到了vue如何做調(diào)試后臺(tái)接口的配置和proxy的工作原理以及為什么能解決跨域,感興趣的朋友跟隨小編一起看看吧

Vue 調(diào)試訪問(wèn)本地后端接口配置

記錄一下本地測(cè)試前端的時(shí)候怎么訪問(wèn)本地后端接口。時(shí)間太長(zhǎng)容易忘。。。。

1、首先要知道前端在訪問(wèn)后端的時(shí)候是怎么加上后端接口地址的。

如下圖,找到封裝http請(qǐng)求的文件,src/utils/rerquest.js
該圖中的baseURL就是訪問(wèn)時(shí)我們加上的后端請(qǐng)求地址。
baseURL: process.env.VUE_APP_BASE_API 表示baseURL使用的是環(huán)境變量中的VUE_APP_BASE_API這個(gè)參數(shù)

在本地測(cè)試前端的時(shí)候使用的命令一般都是npm run dev
然后dev使用的默認(rèn)環(huán)境變量文件是 .env.development
簡(jiǎn)單來(lái)說(shuō),只要在.env.development中配置了VUE_APP_BASE_API參數(shù),那么在本地測(cè)試的時(shí)候默認(rèn)使用的后端地址就是在這個(gè)文件中配置的地址。

一篇看懂 vue 如何做調(diào)試后臺(tái)接口的配置和 proxy 的工作原理 以及為什么能解決跨域

之前也做過(guò)不少vue項(xiàng)目了,每次跟后臺(tái)配合的時(shí)候,有些配置總是會(huì)忘記,感覺(jué)每次的解決方案和上一次的都不一樣,所以這次準(zhǔn)備詳細(xì)的記錄一下,如何做配置,以及一些配置的含義

話不多說(shuō) 直接開(kāi)始

1.首先要想調(diào)取后臺(tái)接口一定要引入的就是axios,所以第一步就是下載 axios

npm install axios

2.在需要調(diào)用接口的頁(yè)面引入axios

import axios from 'axios'

2.1發(fā)送請(qǐng)求

axios({
        method: "post",
        url: "接口地址",
        data: this.data,
        headers: { "Content-Type": "multipart/form-data" },
      }).then(e => {
        console.log(e)
      })

此時(shí)不出意外控制臺(tái)應(yīng)該是報(bào)錯(cuò)了,應(yīng)該是報(bào)的跨域的錯(cuò),此時(shí)就要做一下對(duì)vue.config.js 文件的配置

2.2 vue.config.js
為什么要配置這么文件呢,配置這個(gè)文件的目的是什么呢?
因?yàn)槲覀冎罏g覽器和服務(wù)器之間會(huì)存在跨域問(wèn)題,但是兩個(gè)服務(wù)器之間確實(shí)可以隨意訪問(wèn)的,所以我們要配置一個(gè)代理服務(wù)器來(lái)調(diào)用用服務(wù)器的接口,如果你的前端應(yīng)用和后端 API 服務(wù)器沒(méi)有運(yùn)行在同一個(gè)主機(jī)上,你需要在開(kāi)發(fā)環(huán)境下將 API 請(qǐng)求代理到 API 服務(wù)器,此時(shí)可以通過(guò) vue.config.js 中的 devServer.proxy 選項(xiàng)來(lái)配置。

devServer: {
    port: '9080',
    open: true,
    proxy: {
      '/api': {
        target: 'http://192.168.2.108:9080/crm',//代理地址,這里設(shè)置的地址會(huì)代替axios中設(shè)置的baseURL
        secure: false, //如果是https接口需要進(jìn)行此配置 
        changeOrigin: true,// 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置
        //pathRewrite方法重寫(xiě)url
        pathRewrite: {
          '^/api': '/aaa' //如果沒(méi)有pathRewrite屬性 調(diào)用的接口就是http://cloud/api/xxx/xxxx 如果有 pathRewrite屬性 調(diào)用的接口就是 http://cloud/aaa/xxx/xxxx
         }
        }
      }
    },
  },

devServer里面proxy則是關(guān)于代理的配置,該屬性為對(duì)象的形式,對(duì)象中每一個(gè)屬性就是一個(gè)代理的規(guī)則匹配

屬性的名稱(chēng)是需要被代理的請(qǐng)求路徑前綴,一般為了辨別都會(huì)設(shè)置前綴為/api,值為對(duì)應(yīng)的代理匹配規(guī)則,對(duì)應(yīng)如下:
tip: 如果接口地址沒(méi)有一個(gè)統(tǒng)一的前綴 如 /api 可以設(shè)置一個(gè) axios.defaults.baseURL = ‘/api’ 即可為所有接口地址添加一個(gè)統(tǒng)一的前綴 /api

target:表示的是代理到的目標(biāo)地址
pathRewrite:默認(rèn)情況下,我們的 /api 也會(huì)被寫(xiě)入到URL中,如果希望刪除,可以使用pathRewrite 如果你的接口中本身就帶有 /api 可以不寫(xiě) pathRewrite
secure:默認(rèn)情況下不接收轉(zhuǎn)發(fā)到https的服務(wù)器上,如果希望支持,可以設(shè)置為false
changeOrigin:它表示是否更新代理后請(qǐng)求的 headers 中host地址

3.工作原理

proxy實(shí)質(zhì)就是一個(gè)代理服務(wù)器 這樣就能理解 proxy 工作原理實(shí)質(zhì)上是利用http-proxy-middleware 這個(gè)http代理中間件,實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)給其他服務(wù)器

舉個(gè)例子:

在開(kāi)發(fā)階段,本地地址為http://localhost:3000,該瀏覽器發(fā)送一個(gè)前綴帶有/api標(biāo)識(shí)的請(qǐng)求到服務(wù)端獲取數(shù)據(jù),但響應(yīng)這個(gè)請(qǐng)求的服務(wù)器只是將請(qǐng)求轉(zhuǎn)發(fā)到另一臺(tái)服務(wù)器中

說(shuō)的再通俗一點(diǎn) 就是 A(瀏覽器) 想認(rèn)識(shí)(發(fā)請(qǐng)求) C(服務(wù)器) 但是 由于礙于面子(同源政策) 只能 通過(guò) B(proxy) 來(lái)介紹,也就是 A 發(fā)送請(qǐng)求給 B 再由 B 轉(zhuǎn)發(fā)請(qǐng)求給 C

4.跨域

在開(kāi)發(fā)階段,devServer 會(huì)啟動(dòng)一個(gè)本地開(kāi)發(fā)服務(wù)器,所以我們的應(yīng)用在開(kāi)發(fā)階段是獨(dú)立運(yùn)行在 localhost的一個(gè)端口上,而后端服務(wù)又是運(yùn)行在另外一個(gè)地址上

所以在開(kāi)發(fā)階段中,由于瀏覽器同源策略的原因,當(dāng)本地訪問(wèn)后端就會(huì)出現(xiàn)跨域請(qǐng)求的問(wèn)題

通過(guò)設(shè)置 proxy 實(shí)現(xiàn)代理請(qǐng)求后,相當(dāng)于瀏覽器與服務(wù)端中添加一個(gè)代理者

當(dāng)本地發(fā)送請(qǐng)求的時(shí)候,代理服務(wù)器響應(yīng)該請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到目標(biāo)服務(wù)器,目標(biāo)服務(wù)器響應(yīng)數(shù)據(jù)后再將數(shù)據(jù)返回給代理服務(wù)器,最終再由代理服務(wù)器將數(shù)據(jù)響應(yīng)給本地

請(qǐng)?zhí)砑訄D片描述

在代理服務(wù)器傳遞數(shù)據(jù)給本地瀏覽器的過(guò)程中,兩者同源,并不存在跨域行為,這時(shí)候?yàn)g覽器就能正常接收數(shù)據(jù)

到此這篇關(guān)于Vue 調(diào)試訪問(wèn)本地后端接口配置的文章就介紹到這了,更多相關(guān)vue后端接口配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • uniapp中如何基于vue3實(shí)現(xiàn)輸入驗(yàn)證碼功能

    uniapp中如何基于vue3實(shí)現(xiàn)輸入驗(yàn)證碼功能

    本文介紹了如何使用uniapp和vue3創(chuàng)建一個(gè)手機(jī)驗(yàn)證碼輸入框組件,通過(guò)封裝VerificationCodeInput.vue組件,并在父組件中引入,可以實(shí)現(xiàn)驗(yàn)證碼輸入功能,適合需要增加手機(jī)驗(yàn)證碼驗(yàn)證功能的開(kāi)發(fā)者參考使用
    2024-09-09
  • vue前端開(kāi)發(fā)輔助函數(shù)狀態(tài)管理詳解示例

    vue前端開(kāi)發(fā)輔助函數(shù)狀態(tài)管理詳解示例

    vue的應(yīng)用狀態(tài)管理提供了mapState、mapGetters、mapMutations、mapActions四個(gè)輔助函數(shù),所謂的輔助函數(shù)分別對(duì)State、Getters、Mutations、Actions在完成狀態(tài)的使用進(jìn)行簡(jiǎn)化
    2021-10-10
  • 詳解nuxt sass全局變量(公共scss解決方案)

    詳解nuxt sass全局變量(公共scss解決方案)

    這篇文章主要介紹了詳解nuxt sass全局變量(公共scss解決方案),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Vue中mixins混入的介紹與使用詳解

    Vue中mixins混入的介紹與使用詳解

    如果我們?cè)诿總€(gè)組件中去重復(fù)定義這些屬性和方法會(huì)使得項(xiàng)目出現(xiàn)代碼冗余并提高了維護(hù)難度,針對(duì)這種情況官方提供了Mixins特性,這時(shí)使用Vue mixins混入有很大好處,下面就介紹下Vue mixins混入使用方法,需要的朋友參考下吧
    2022-12-12
  • web開(kāi)發(fā)中如何優(yōu)雅的解決"重復(fù)請(qǐng)求"問(wèn)題

    web開(kāi)發(fā)中如何優(yōu)雅的解決"重復(fù)請(qǐng)求"問(wèn)題

    在我們的日常開(kāi)發(fā)當(dāng)中,很多時(shí)候會(huì)出現(xiàn)短時(shí)間內(nèi)重復(fù)請(qǐng)求的情況,如果沒(méi)有妥當(dāng)?shù)靥幚砗蠊車(chē)?yán)重,這篇文章主要給大家介紹了關(guān)于web開(kāi)發(fā)中如何優(yōu)雅的解決重復(fù)請(qǐng)求問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Vue3實(shí)現(xiàn)一個(gè)定高的虛擬列表

    Vue3實(shí)現(xiàn)一個(gè)定高的虛擬列表

    虛擬列表對(duì)于大部分一線開(kāi)發(fā)同學(xué)來(lái)說(shuō)是一點(diǎn)都不陌生的東西了,這篇文章主要來(lái)教大家如何在2分鐘內(nèi)實(shí)現(xiàn)一個(gè)定高的虛擬列表,感興趣的可以了解下
    2024-12-12
  • sublime如何配置開(kāi)發(fā)VUE環(huán)境自動(dòng)格式化代碼

    sublime如何配置開(kāi)發(fā)VUE環(huán)境自動(dòng)格式化代碼

    這篇文章主要介紹了sublime如何配置開(kāi)發(fā)VUE環(huán)境自動(dòng)格式化代碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue文件下載進(jìn)度條的實(shí)現(xiàn)過(guò)程

    Vue文件下載進(jìn)度條的實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了Vue文件下載進(jìn)度條的實(shí)現(xiàn)原理,通過(guò)使用onDownloadProgress方法API獲取進(jìn)度及文件大小等數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 用vue寫(xiě)一個(gè)日歷

    用vue寫(xiě)一個(gè)日歷

    這篇文章主要介紹了如何利用vue寫(xiě)一個(gè)日歷,幫助大家更好的理解和學(xué)習(xí)vue,感興趣的朋友可以了解下
    2020-11-11
  • Vue?element-ui中表格過(guò)長(zhǎng)內(nèi)容隱藏顯示的實(shí)現(xiàn)方式

    Vue?element-ui中表格過(guò)長(zhǎng)內(nèi)容隱藏顯示的實(shí)現(xiàn)方式

    在Vue項(xiàng)目中,使用ElementUI渲染表格數(shù)據(jù)時(shí),如果某一個(gè)列數(shù)值長(zhǎng)度超過(guò)列寬,會(huì)默認(rèn)換行,造成顯示不友好,下面這篇文章主要給大家介紹了關(guān)于Vue?element-ui中表格過(guò)長(zhǎng)內(nèi)容隱藏顯示的實(shí)現(xiàn)方式,需要的朋友可以參考下
    2022-09-09

最新評(píng)論