vue中如何配置proxy代理

 更新时间:2023年01月14日 10:01:27   作者:@是静静啊  
这篇文章主要介绍了vue中如何配置proxy代理问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue配置proxy代理

如果你的前端应用和后端 API 服务器没有运行在同一个主机上(即解决跨域问题,用proxy代理请求一下),你需要在开发环境下将 API 请求代理到 API 服务器。

这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。

转发到

https://apimusic.linweiqin.com

app.vue文件

<template>
  <div id="app">
    <h1>hello Vue cli</h1>
    <HelloWorld></HelloWorld>
  </div>
</template><script>
/* @ => src */
// import HelloWorld from "./components/HelloWorld.vue";
import HelloWorld from "@/components/HelloWorld.vue";
/* 1. 引入 axios 请求库 */
import axios from "axios";
/* 组件的配置项 */
export default {
  created() {
    // axios
    //   .get("song/url?id=504835560")
    //   .then((res) => {
    //     console.log(res);
    //   });
    axios
      .get("/song/url?id=504835560")
      .then((res) => {
        console.log(res);
      });
    axios.get("/api/s/getHotProducts").then(res=>{
      console.log(res);
    })
    
  },
  name: "App",
  components: {
     HelloWorld
  },
};
</script><style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

在 vue.config.js 文件中添加如下所示的配置项

module.exports = {
  lintOnSave: false,
  devServer: {
    proxy: "https://apimusic.linweiqin.com/"
  }
};

如果请求有多个不同的地址

A: http://s.linweiqin.com/api/s/getHotProducts

B: https://apimusic.linweiqin.com/song/url?id=504835560

module.exports = {
  lintOnSave: false,
  //   devServer: {
  //     proxy: "https://apimusic.linweiqin.com/"
  //   }
  devServer: {
    proxy: {
      "/song": {
        target: "https://apimusic.linweiqin.com/",
        // changeOrigin: true,
      },
      "/api": {
        target: "http://s.linweiqin.com/",
      },
    },
  },
};

proxy常用参数说明

module.exports = {
    publicPath: "/",
    devServer: {
        proxy: {
            "/api": {
                // 代理名称   凡是使用/api开头的地址都是用此代理
                target: "http://1.2.3.4:5000/", // 需要代理访问的api地址
                changeOrigin: true, // 允许跨域请求
                pathRewrite: {
                    // 重写路径,替换请求地址中的指定路径
                    "^/api": "/", // 将请求地址中的/api替换为空,也就是请求地址中不会包含/api/
                },
            },
        },
    },
};

关于/api的详解

‘/api’:是指遇到这个字符开头的话,在这个字符前面加上target里面的ip或者域名。

举例:

①登录接口:http://1.2.3.4:5000/login

…中间省略了配置过程…

②npm run serve:Local: http://localhost:8080/

③点击后发送的登录请求:http://localhost:8080/api/login

④/api 的作用就是将/api前的localhost:8080变成target的内容http://1.2.3.4:5000/

⑤完整的路径变成了http://1.2.3.4:5000/api/login

⑥实际接口当中没有这个api,所以pathwrite重写就解决这个问题的。

pathwrite识别到api开头就会把/api重写成空,那就是不存在这个/apil了,完整的路径又变成:http://1.2.3.4:5000/login

部署因为/api无法请求到数据

接口名称不用/api,改用实际接口的第一个字段,然后取消pathwrite重写

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 写一个Vue Popup组件

    写一个Vue Popup组件

    这篇文章主要介绍了写一个Vue Popup组件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • 解决新建一个vue项目过程中遇到的问题

    解决新建一个vue项目过程中遇到的问题

    这篇文章主要介绍了解决新建一个vue项目过程中遇到的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vue中的事件修饰符介绍和示例

    vue中的事件修饰符介绍和示例

    在Vue中,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理,需要的朋友可以参考下
    2023-04-04
  • Vue-CLI项目中路由传参的方式详解

    Vue-CLI项目中路由传参的方式详解

    这篇文章主要介绍了Vue-CLI项目中路由传参的方式详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Vue学习笔记进阶篇之过渡状态详解

    Vue学习笔记进阶篇之过渡状态详解

    本篇文章主要介绍了Vue学习笔记进阶篇之过渡状态详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • vue项目实现会议预约功能(包含某天的某个时间段和某月的某几天)

    vue项目实现会议预约功能(包含某天的某个时间段和某月的某几天)

    这篇文章主要介绍了vue项目实现会议预约功能(包含某天的某个时间段和某月的某几天),本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • 基于Vue+element-ui 的Table二次封装的实现

    基于Vue+element-ui 的Table二次封装的实现

    这篇文章主要介绍了基于Vue+element-ui 的Table二次封装的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • vue如何移动到指定位置(scrollIntoView)亲测避坑

    vue如何移动到指定位置(scrollIntoView)亲测避坑

    这篇文章主要介绍了vue如何移动到指定位置(scrollIntoView)亲测避坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue 实现前端权限控制的示例代码

    Vue 实现前端权限控制的示例代码

    这篇文章主要介绍了Vue 实现前端权限控制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • element el-table 表格限制多选个数功能

    element el-table 表格限制多选个数功能

    这篇文章主要介绍了element el-table 表格限制多选个数功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03

最新评论