vue项目中如何调用多个不同的ip接口

首先,我们需要在 Vue 项目中设置不同的 ip 接口。这可以通过在项目根目录下的 config/index.js 文件中修改地址来实现。根据你所需要连接的不同 ip 接口,当前文件需要进行下列修改:

  1. 添加 dev 和 prod 中的接口

devprod 分别对应 Vue 项目的开发和生产环境。我们需要在文件中添加对应的接口地址。对于 config/index.js 文件中的 dev 对象,增加以下代码:

dev: {
  env: require('./dev.env'),
  port: 8085,
  proxyTable: {
    '/api1': {
      target: 'http://127.0.0.1:8080',
      changeOrigin: true,
      pathRewrite: {
        '^/api1': '/'
      }
    },
    '/api2': {
      target: 'http://127.0.0.1:9090',
      changeOrigin: true,
      pathRewrite: {
        '^/api2': '/'
      }
    }
  },
  cssSourceMap: false
}

针对接口一,我们设置了 http://127.0.0.1:8080 作为代理地址,将 /api1 替换为根路径 /,这样在项目中调用 /api1 接口时,即会被代理到 http://127.0.0.1:8080

类似地,对于接口二,我们设置代理地址为 http://127.0.0.1:9090,并将访问路径规定为 /api2

  1. 修改生产环境下的接口

对于 config/index.js 文件中的 prod 对象,我们也需要相应地更新代理,使其在生产环境下同样可以访问到接口。

prod: {
  env: require('./prod.env'),
  port: 9000,
  // 修改这里
  proxyTable: {
    '/api1': {
      target: 'http://api.example.com',
      changeOrigin: true,
      pathRewrite: {
        '^/api1': '/'
      }
    },
    '/api2': {
      target: 'http://api.example.com:9090',
      changeOrigin: true,
      pathRewrite: {
        '^/api2': '/'
      }
    }
  },
  // 静态资源的根目录
  index: path.resolve(__dirname, '../dist/index.html'),
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  productionSourceMap: true,
  cssSourceMap: false,
  // 配置需要压缩的文件
  productionGzip: false,
  productionGzipExtensions: ['js', 'css']
}

这里我们将代理地址修改为了实际的接口地址,这意味着在生产环境下,访问 /api1/api2 时,实际上会被代理到 http://api.example.com:9090

为了正确设置代理,我们需要在项目的 main.js 文件中加载 devServer 配置:

// 引入 devServer 配置
var config = require('../config')
if (!process.env.NODE_ENV) {
  process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
}

var app = require('./app')
app.listen(3000)

经过上述步骤,我们已经成功设置了 two different ips 的 Vue 项目的接口地址,下面我们来看具体示例:

  1. Vue 项目中同时使用多个 ip 的接口
<template>
  <div>
    <!-- 访问接口一 -->
    <button @click="fetchApi1">Fetch Api1</button>
    <div>{{ api1Data }}</div>

    <!-- 访问接口二 -->
    <button @click="fetchApi2">Fetch Api2</button>
    <div>{{ api2Data }}</div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        api1Data: null,
        api2Data: null
      }
    },
    methods: {
      fetchApi1 () {
        axios.get('/api1').then(response => {
          this.api1Data = response.data
        })
      },
      fetchApi2 () {
        axios.get('/api2').then(response => {
          this.api2Data = response.data
        })
      }
    }
  }
</script>
  1. 在 Vue 项目中创建两个实例,分别访问不同接口。
<template>
  <div>
    <!-- 实例一 -->
    <div>{{ api1Data }}</div>

    <!-- 实例二 -->
    <div>{{ api2Data }}</div>
  </div>
</template>

<script>
  import axios from 'axios'

  export default {
    data () {
      return {
        api1Data: null,
        api2Data: null
      }
    },

    created () {
      // 创建第一个实例
      axios.create({
        baseURL: 'http://127.0.0.1:8080'
      }).get('api1').then(response => {
        this.api1Data = response.data
      })

      // 创建第二个实例
      axios.create({
        baseURL: 'http://127.0.0.1:9090'
      }).get('api2').then(response => {
        this.api2Data = response.data
      })
    }
  }
</script>

在这种情况下,我们使用了 axios.create() 方法创建了两个 axios 实例,每个实例在不同的 ip 地址下访问对应的接口,从而成功调用了不同的 ip 接口。

以上就是 Vue 项目中如何调用多个不同的 ip 接口的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue项目中如何调用多个不同的ip接口 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Win9技术预览版下载地址页面曝光:32位版本积将超过3GB

    很抱歉,但我必须告诉您,关于\”Win9技术预览版下载地址页面曝光:32位版本积将超过3GB\”的攻略,我无法提供详细的信息。这是因为\”Win9技术预览版\”并不是一个真实存在的产品,而且在2023年的7月28日,我所了解的最新操作系统是Windows 11。 如果您有关于Windows 11的问题,我将非常乐意帮助您。请告诉我您需要了解的内容,我将尽力为…

    other 2023年7月28日
    00
  • [工具推荐]001.flippdf使用教程

    [工具推荐]001.flippdf使用教程 什么是Flippdf? Flippdf是一种用于制作翻页效果电子书的工具,可以将PDF文件转换成具有翻页效果的电子书,适用于电子杂志、电子图书等多种场景。 如何使用Flippdf? 首先,需要下载并安装Flippdf软件,软件下载链接可以在官方网站获得。 安装完成后,打开软件,在首页可以选择“Import PDF”…

    其他 2023年3月29日
    00
  • 自己简单封装的一个CDialog类实例

    以下是自己简单封装的CDialog类实例的攻略: 1. 创建CDialog类 首先,在Visual Studio中创建一个新的MFC应用程序。选择Empty Project,然后选中MFC应用程序。接下来,在项目设置中,选择“使用CDocuments”选项。 然后,我们开始封装一个CDialog类。打开一个.h文件,在其中定义一个新的类,可以使用如下代码: …

    other 2023年6月25日
    00
  • 基于java枚举类综合应用的说明

    下面我将为您详细讲解“基于Java枚举类综合应用的说明”的完整攻略。 1. Java枚举类概述 Java中的枚举类(Enum)是一种特殊的数据类型,用于定义一个固定数量的常量集合。枚举类可以拥有自己的构造方法、常量、变量和方法。相比于使用常量或者类常量,枚举类的优势在于它具有类型安全的属性,可以避免调用方输入错误的值。 2. Java枚举类的基本语法 Jav…

    other 2023年6月27日
    00
  • 如何让虚拟机访问外网

    当我们在虚拟机中进行开发或测试时,需要让虚拟机访问外网,以便下载软件、更新系统等操作。以下是关于如何让虚机访问外网的完整攻略: 确认虚拟机网络连接方式 在让虚拟机访问外网之前,需要确认虚机的网络连接方式。虚拟机可以使用桥接模式、NAT模式或者Host-Only模式进行网络连接。其中,桥接模式可以让虚拟机直接连接到物理网络中,NAT模式可以让虚拟机通过主机网络…

    other 2023年5月9日
    00
  • ios16怎么开启开发者模式?ios16开启开发者模式教程

    iOS 16操作系统中开启开发者模式需要进行如下步骤: 步骤一:进入设置 首先,需要打开你的iOS 16设备,进入“设置”菜单: – 点击桌面上的设置图标 或者 – 通过下拉通知栏进入设置 步骤二:进入设备信息 在设置菜单中,向下滚动并找到“通用”选项,点击进入,再找到“关于本机”选项: – 点击“通用”选项 – 点击“关于本机”选项 步骤三:进入开发者选项…

    other 2023年6月26日
    00
  • C++ string 字符串查找匹配实例代码

    C++中的字符串是以string类来表示的,string类提供了多种方法来进行查找和匹配操作。 下面是一些常用的方法: find()函数 find() 函数可以在字符串中查找子串,返回子串在字符串中的位置,如果没有找到,返回string::npos。 string str = "Hello World"; string subStr = …

    other 2023年6月20日
    00
  • 流放之路3.4圣堂武僧守护者型双捷召唤BD介绍 低价速刷通关BD攻略

    流放之路3.4圣堂武僧守护者型双捷召唤BD介绍 低价速刷通关BD攻略 简介 在流放之路3.4版本中,圣堂武僧守护者型双捷召唤BD是一种强大的低价速刷通关BD。该BD利用圣堂武僧的守护者型召唤技能和双捷技能,能够在短时间内快速击败敌人,适合新手玩家或者想要快速通关的玩家。 技能配置 以下是该BD的技能配置: 主技能:圣堂武僧的守护者型召唤技能 辅助技能:双捷技…

    other 2023年8月6日
    00
合作推广
合作推广
分享本页
返回顶部