Vue?配置代理詳情
方式一
首先安裝 axios:npm i axios
修改 App.vue
<template>
? <div>
? ? <button @click="getBookInfo">獲取書籍信息</button>
? </div>
</template>
<script>
import axios from "axios"
export default {
? name: 'App',
? methods:{
? ? getBookInfo(){
? ? ? axios.get("http://localhost:8080/downloads/data.json").then(
? ? ? ? ? response =>{
? ? ? ? ? ? console.log("請求成功了",response.data);
? ? ? ? ? },
? ? ? ? ? error => {"請求失敗了",error.message}
? ? ? )
? ? }
? }
}
</script>點(diǎn)擊按鈕請求書籍的信息,其中http://localhost:8080/downloads/data.json返回了書籍信息:

當(dāng)我們點(diǎn)擊按鈕時(shí),卻發(fā)現(xiàn)報(bào)錯(cuò)了:

這是跨域請求的錯(cuò)誤,當(dāng)協(xié)議名(http)、主機(jī)名(localhost)、端口號(8080) 中有一個(gè)不一致會(huì)提示跨域請求。解決辦法有:1、cors;2、jsonp;3、代理服務(wù)器
我們來學(xué)習(xí)第三個(gè),可以先查看下官方文檔 Vue Cli 配置參考:devServer.proxy
流程:8081 向 8080 請求數(shù)據(jù),我們開啟一個(gè)代理服務(wù)器,端口號和我們的 8081 相同
修改:
1、 vue.config.js,直接復(fù)制官網(wǎng)代碼,修改端口號為請求數(shù)據(jù)的端口8080
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
? transpileDependencies: true,
? lintOnSave:false,
? //開啟代理服務(wù)器
? devServer: {
? ? proxy: 'http://localhost:8080'
? }
})2、請求數(shù)據(jù)端口修改為本地端口 8081

3、由于修改了腳手架配置,所以先停掉端口,然后重新運(yùn)行

可以看到請求成功了

方式二
方式一有兩個(gè)不完美的地方:1、只能配置一個(gè)代理服務(wù)器。2、當(dāng)本地也就是 public 有相同數(shù)據(jù),就不請求代理服務(wù)器了
1、修改 vue.config.js,注釋掉方式一的代碼,改為
devServer: {
? ? proxy: {
? ? ? '/api': {
? ? ? ? target: 'http://localhost:8080',
? ? ? ? pathRewrite:{'^/api':''},
? ? ? ? ws: true,
? ? ? ? changeOrigin: true
? ? ? }
? ? }
? }
2、請求路徑增加前綴

3、由于修改了腳手架配置,所以先停掉端口,然后重新運(yùn)行
vue 腳手架配置代理總結(jié)
方法一
在vue.config.js中添加如下配置:
devServer: {
? ? proxy: 'http://localhost:8080'
}說明:
- 1.優(yōu)點(diǎn):配置簡單,請求資源時(shí)直接發(fā)給前端(8080)即可。
- 2.缺點(diǎn):不能配置多個(gè)代理,不能靈活的控制請求是否走代理
- 3.工作方式:若按照上述配置代理,當(dāng)請求了前端不存在的資源時(shí),那么該請求會(huì)轉(zhuǎn)發(fā)給服務(wù)器(優(yōu)先匹配前端資源)
方法二
devServer: {
? ? proxy: {
? ? ? '/api': {//匹配所有以/api開頭的路徑
? ? ? ? target: 'http://localhost:8080',//代理目標(biāo)的基礎(chǔ)路徑
? ? ? ? pathRewrite:{'^/api':''},//路徑重寫,匹配api開頭的字符串,并把a(bǔ)pi替換為空字符串
? ? ? ? ws: true,//用于支持websocket
? ? ? ? changeOrigin: true//請求來自于。即控制請求頭中host數(shù)據(jù)。默認(rèn)為true說謊:來自8080;false如實(shí)回答來自代理服務(wù)器8081
? ? ? }
? ? }
? }說明:
- 1.優(yōu)點(diǎn):可以配置多個(gè)代理,且可以靈活的控制請求是否走代理。
- 2.缺點(diǎn):配置略微繁瑣,請求資源時(shí)必須加前綴。
到此這篇關(guān)于Vue 配置代理詳情的文章就介紹到這了,更多相關(guān)Vue 配置代理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序?qū)崙?zhàn)基于vue2實(shí)現(xiàn)瀑布流的代碼實(shí)例
瀑布流,又稱瀑布流式布局,是比較流行的一種網(wǎng)站頁面布局,視覺表現(xiàn)為參差不齊的多欄布局,隨著頁面滾動(dòng)條向下滾動(dòng),這種布局還會(huì)不斷加載數(shù)據(jù)塊并附加至當(dāng)前尾部,這篇文章主要介紹了微信小程序?qū)崙?zhàn),基于vue2實(shí)現(xiàn)瀑布流,需要的朋友可以參考下2022-12-12
基于Vue 2.0 監(jiān)聽文本框內(nèi)容變化及ref的使用說明介紹
今天小編就為大家分享一篇基于Vue 2.0 監(jiān)聽文本框內(nèi)容變化及ref的使用說明介紹,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue隨機(jī)驗(yàn)證碼組件的封裝實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何封裝一個(gè)隨機(jī)驗(yàn)證碼的VUE組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
vue-cli3啟動(dòng)服務(wù)如何自動(dòng)打開瀏覽器配置
這篇文章主要介紹了vue-cli3啟動(dòng)服務(wù)如何自動(dòng)打開瀏覽器配置,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue導(dǎo)出excel的兩個(gè)常用方式介紹與對比
這篇文章主要為大家詳細(xì)介紹了Vue導(dǎo)出excel的兩個(gè)常用方式,分別為前端vue+XLSX導(dǎo)出excel和vue+后端POI?導(dǎo)出excel,感興趣的小伙伴可以了解下2025-01-01
Vue 引入AMap高德地圖的實(shí)現(xiàn)代碼
這篇文章主要介紹了Vue 引入AMap高德地圖的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

