Vue:(三十二)脚手架配置代理

38 篇文章 2 订阅

在工作中,我们在浏览器请求的时候,经常会遇见跨域CROS的问题,解决办法有多种,可以通过nginx配置实现,也可以通过前端技术实现,今天我们就学习一下通过前端配置代理的方式解决跨域问题。

方法一

在vue.config.js中添加如下配置:

devServer:{
    proxy:"http://localhost:9000"
}

说明:

  1. 优点:配置简单,请求资源时直接发给前端(8080)即可

  1. 缺点:不能配置多个代理,不能灵活的控制请求是否走代理

  1. 工作方式:若按照上述配置代理,当请求了前端不存在的资源时,那么请求会转发给服务器(有限匹配前端资源)

方法二

编写vue.config.js配置具体代理规则:

devServer: {
    proxy: {
      api: {
        target: 'https://www.baidu.com',
        pathRewrite: { '^/api': '' },
          changeOrigin: true
      },
            ap2: {
        target: 'https://www.baidu.com',
        pathRewrite: { '^/ap2': '' },
          changeOrigin: true
      },
    },
  },

说明:

  1. 优点:可以配置多个代理,且可以灵活的控制请求是否走代理

  1. 缺点:配置略微繁琐,请求资源时必须加前缀

上述是讲解了通过两种配置实现跨域的方案,下面我通过代码来实现第二种方案,来解决请求百度网站的跨域问题。

App.vue

<template>
  <div>
    <button @click="getBaidu">百度一下</button>
  </div>
</template>

<script>
  //引入组件
  import axios from 'axios'

  export default {
    name: 'App',
    methods: {
      getBaidu() {
        axios.get('http://localhost:8080/api').then(
          (response) => {
            console.log('请求成功了', response.data)
          },
          (error) => {
            console.log('请求失败了', error.message)
          }
        )
      },
    },
  }
</script>

vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    proxy: {
      api: {
        target: 'https://www.baidu.com',
        pathRewrite: { '^/api': '' },
      },
    },
  },
})

代码中用到的是axios方法发送请求,这个第三方库安装也很简单,只需要在终端执行 npm i axios,就能完成安装。

今天的配置代理就学到这里了

我是空谷有来人,谢谢支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值