最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue跨域proxy代理配置詳解

 更新時(shí)間:2022年08月22日 14:56:47   作者:白嫖leader  
今天被vue中proxy配置困擾了一天,記錄一下,下面這篇文章主要給大家介紹了關(guān)于Vue配置文件中的proxy配置方式的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

引言

相信很多人都用過(guò)proxy,這里就不多說(shuō)proxy的基本使用,這里要說(shuō)一下很多人使用proxy的一個(gè)誤區(qū),大家一般都是直接將管官方的例子拿過(guò)來(lái),修改一下代理目標(biāo)直接就是用了,但是代理的路徑匹配你真的會(huì)用么?

如果你能夠認(rèn)證看完那么我保證你下次再配置代理的時(shí)候就能一步就能完成,無(wú)需多次npm run serve

先來(lái)一個(gè)正則熱熱身待會(huì)需要用,看懂了再往下看:

例一

這是我使用express自己搭建的一個(gè)超級(jí)簡(jiǎn)單的服務(wù)器,代碼如下(沒(méi)有設(shè)置允許跨域請(qǐng)求)

// 引入 express 框架
const express = require("express")
// 創(chuàng)建網(wǎng)站服務(wù)器
const app = express()
app.get("/list", (req, res) => {
  // 向客戶端直接響應(yīng)一個(gè)對(duì)象
  res.send({ name: "張三", age: 333 })
})
app.get("/aa/api/list", (req, res) => {
  // 向客戶端直接響應(yīng)一個(gè)對(duì)象
  res.send({ name: "李四", age: 666 })
})
app.get("/aa/list", (req, res) => {
  // 向客戶端直接響應(yīng)一個(gè)對(duì)象
  res.send({ name: "王五", age: 888 })
})
// 監(jiān)聽(tīng)端口
app.listen(3000)
console.log("網(wǎng)站服務(wù)器啟動(dòng)成功")

下面是我的vue.config.js的配置信息

const path = require("path")
module.exports = {
  devServer: {
    // open: true, //打開(kāi)瀏覽器
    overlay: {
      //當(dāng)出現(xiàn)編譯錯(cuò)誤或警告時(shí),在瀏覽器中顯示全屏覆蓋。
      warnings: false, //不顯示警告
      errors: true, //顯示錯(cuò)誤
    },
    proxy: {
      //下面的key是一個(gè)正則表達(dá)式它的/api前加上^和不加^符號(hào)差別非常大
      "/api": {
        target: "http://localhost:3000",
        pathRewrite: {
          //下面的key是一個(gè)正則表達(dá)式它的/api前加上^和不加^符號(hào)差別非常大
          "^/api": "",
        },
      },
    },
  },
  runtimeCompiler: true,
  lintOnSave: false,
  configureWebpack: {
    resolve: {
      alias: {
        "@": path.resolve(__dirname, "src"),
      },
    },
  },
}

大家只需要關(guān)注下面的一部分就可以了,其他的對(duì)這次講解沒(méi)有影響:

發(fā)送請(qǐng)求的代碼如下:

<template>
  <div>
    <!-- 測(cè)試跨域,這個(gè)測(cè)試的非常好 -->
    <el-button @click="send1" type="success">點(diǎn)我發(fā)送請(qǐng)求1</el-button>
    <el-button @click="send2" type="success">點(diǎn)我發(fā)送請(qǐng)求2</el-button>
  </div>
</template>
<script>
import { axiosImpl } from "@/utils/request"
export default {
  methods: {
    async send1() {
      let res = await axiosImpl.get("/aa/api/list")
      console.log(res)
    },
    async send2() {
      let res = await axiosImpl.get("/api/list")
      console.log(res)
    },
  },
}
</script>
<style></style>

很簡(jiǎn)單的幾行代碼,那么此時(shí)點(diǎn)擊兩個(gè)按鈕會(huì)分別輸入什么呢?

看結(jié)果:

也許想的和你不太一樣,那么這就是我們要說(shuō)的重點(diǎn)了,在圈1和圈2圈起來(lái)的地方,是一個(gè)正則表達(dá)式

由于此時(shí)圈1沒(méi)有加^符號(hào),那么所有帶有/api的請(qǐng)求都會(huì)進(jìn)來(lái),然后進(jìn)行代理,在進(jìn)行pathRewrite的時(shí)候,由于加上了^符號(hào),那么就只會(huì)匹配以/api開(kāi)頭的路徑,把以/api開(kāi)頭的這一個(gè)/符號(hào)和三個(gè)字母變?yōu)榭?,其余的都保留下?lái),因此第一個(gè)請(qǐng)求到服務(wù)器就變成了/aa/api/list,第二個(gè)就變成了/list,因此結(jié)果就變成了上面的樣子。

例二

如果將vue.config.js的值改成下面的這個(gè)樣子,其余的不變,結(jié)果又會(huì)是什么呢?

結(jié)果如下:

原理和上面的一樣

由于此時(shí)圈1加上了^符號(hào),那么所有以/api開(kāi)頭的請(qǐng)求都會(huì)進(jìn)來(lái),然后進(jìn)行代理,在代理的時(shí)候,由于沒(méi)有上了^符號(hào),那么就會(huì)吧路徑中所有的/api都變成空,對(duì)于請(qǐng)求二到最后到服務(wù)器就只剩下了一個(gè)/list,因此結(jié)果就變成了上面的樣子。

總結(jié)

圈一和圈二的地方都是正則表達(dá)式,再配置proxy的時(shí)候一定要看清楚有沒(méi)有加^符號(hào)或者^符號(hào)有沒(méi)有加錯(cuò),或者是不是寫(xiě)成了正則表達(dá)式里面的其他符號(hào)

到此這篇關(guān)于vue跨域proxy代理配置詳解的文章就介紹到這了,更多相關(guān)vue proxy內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3打包部署報(bào)錯(cuò)的解決方案

    Vue3打包部署報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了Vue3打包部署報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue3使用keep?alive實(shí)現(xiàn)前進(jìn)更新后退銷(xiāo)毀

    vue3使用keep?alive實(shí)現(xiàn)前進(jìn)更新后退銷(xiāo)毀

    這篇文章主要為大家介紹了vue3中使用keep?alive實(shí)現(xiàn)前進(jìn)更新后退銷(xiāo)毀示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • vue報(bào)錯(cuò)Failed to execute 'appendChild' on 'Node'解決

    vue報(bào)錯(cuò)Failed to execute 'appendChild&apos

    這篇文章主要為大家介紹了vue報(bào)錯(cuò)Failed to execute 'appendChild' on 'Node'解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • vue+element的表格實(shí)現(xiàn)批量刪除功能示例代碼

    vue+element的表格實(shí)現(xiàn)批量刪除功能示例代碼

    這篇文章主要介紹了vue+element的表格實(shí)現(xiàn)批量刪除功能示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Vue組件之非單文件組件的使用詳解

    Vue組件之非單文件組件的使用詳解

    Vue中常常會(huì)把組件分為非單文件組件和單文件組件,這篇文章主要為大家介紹了非單文件組件的具體使用方法,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-05-05
  • Vue中添加滾動(dòng)事件設(shè)置的方法詳解

    Vue中添加滾動(dòng)事件設(shè)置的方法詳解

    這篇文章主要給大家介紹了關(guān)于Vue中添加滾動(dòng)事件設(shè)置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • vue使用element-ui按需引入時(shí)踩過(guò)的那些坑

    vue使用element-ui按需引入時(shí)踩過(guò)的那些坑

    Element-UI是基于vue實(shí)現(xiàn)的一套不依賴業(yè)務(wù)的UI組件庫(kù),提供了豐富的PC端組件,減少用戶對(duì)常用組件的封裝,降低了開(kāi)發(fā)的難易程度,下面這篇文章主要給大家介紹了關(guān)于vue使用element-ui按需引入時(shí)踩過(guò)的那些坑,需要的朋友可以參考下
    2022-05-05
  • element-ui中的clickoutside點(diǎn)擊空白隱藏元素

    element-ui中的clickoutside點(diǎn)擊空白隱藏元素

    這篇文章主要為大家介紹了element-ui中的clickoutside點(diǎn)擊空白隱藏元素示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • vue項(xiàng)目使用$router.go(-1)返回時(shí)刷新原來(lái)的界面操作

    vue項(xiàng)目使用$router.go(-1)返回時(shí)刷新原來(lái)的界面操作

    這篇文章主要介紹了vue項(xiàng)目使用$router.go(-1)返回時(shí)刷新原來(lái)的界面操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue組件之全局注冊(cè)和局部注冊(cè)方式

    vue組件之全局注冊(cè)和局部注冊(cè)方式

    這篇文章主要介紹了vue組件之全局注冊(cè)和局部注冊(cè)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評(píng)論

抚远县| 平陆县| 应用必备| 彭泽县| 罗江县| 崇义县| 思南县| 海兴县| 杂多县| 沅陵县| 临安市| 河东区| 乌兰浩特市| 湘潭市| 邵武市| 宜兴市| 南郑县| 马尔康县| 德令哈市| 郑州市| 江安县| 长治市| 登封市| 凌云县| 福安市| 新平| 弥渡县| 垦利县| 元朗区| 沙坪坝区| 兰溪市| 板桥市| 平远县| 西和县| 桦南县| 慈溪市| 开封县| 六安市| 绥德县| 丽江市| 封丘县|