vue项目多个不同的服务器请求地址管理

vue项目多个不同的服务器请求地址管理

在vue项目开发过程中,获取不同的数据可能会出现需要请求多个不同服务器地址的域名,这个时候需要对不同域名的请求地址进行管理以及跨域的代理。

一、单服务器域名地址的跨域代理和请求配置:

跨域配置:

在vue项目的vue.config.js文件中对devServer.proxy进行配置,如下:

javascript 复制代码
module.exports = {
    publicPath: './', // 默认加载地址为当前目录下
    devServer:{
        hot: true,
        port: 8000, // 启动端口
        open: true,  // 启动后是否自动打开网页
        proxy: {
            "/api/": {
                target: "http://XXXXX.com/",
                changeOrigin: true,
                pathRewrite: {
                '^/api': ''
                }
            }
        }
    }
}

axios请求封装:

封装axios请求的js文件中配置如下:

javascript 复制代码
import axios from 'axios';

axios.defaults.baseURL = '/api'; // 默认请求地址
// 其他配置此处省略......

// 封装请求API
export function XXXAPI(data) {
    return axios({
        url: '/xxx/xxx/', // 接口地址
        method: 'post', // 请求方法
        data: data, // 参数数据
    })
}

// 需要调用接口时调XXXAPI即可

这是单一服务器请求地址的写法,直接在axios.defaults选项中配置baseURL地址。

二、多服务器域名地址的跨域代理和请求配置:

多服务器域名的跨域配置:

同样是在vue.config.js文件中对devServer.proxy进行配置,如下:

javascript 复制代码
module.exports = {
    publicPath: './', // 默认加载地址为当前目录下
    devServer:{
        hot: true,
        port: 8000, // 启动端口
        open: true,  // 启动后是否自动打开网页
        proxy: {
        	// 配置服务器地址一
            "/api/": {
                target: "http://XXXXX.com/",
                changeOrigin: true,
                pathRewrite: {
                '^/api': ''
                }
            },
            // 配置服务器地址二
            "/bpi/": {
                target: "http://XXXXX.com/",
                changeOrigin: true,
                pathRewrite: {
                '^/bpi': ''
                }
            }
        }
    }
}

// 多个服务器的跨域配置在proxy中添加多个类进行设置

多个服务器地址的axios请求封装:

在封装的axios请求文件中配置如下:

javascript 复制代码
import axios from 'axios';

const aaAxios = axios.create({
    baseURL: '/api'
})

const bbAxios = axios.create({
    baseURL: '/bpi'
})

// 封装请求API
export function aaAPI(data) {
    return aaAxios({
        url: '/xxx/xxx/', // 接口地址
        method: 'post', // 请求方法
        data: data, // 参数数据
    })
}

export function bbAPI(data) {
    return bbAxios({
        url: '/xxx/xxx/', // 接口地址
        method: 'post', // 请求方法
        data: data, // 参数数据
    })
}

// 需要调用接口时调封装的API即可

多服务器请求地址的情况下,axios请求封装中,需要根据不同的请求地址创建不同的axios对象,通过axios.create()设置不同的baseURL地址。在后续封装请求API时,根据不同的接口使用不同的axios对象即可实现同一个vue项目请求不同的服务器地址。

END

如果对你有帮助,记得点个赞噢(~~)

相关推荐
PPPPickup18 分钟前
easychat项目复盘---获取联系人列表,联系人详细,删除拉黑联系人
java·前端·javascript
老前端的功夫19 分钟前
前端高可靠架构:医疗级Web应用的实时通信设计与实践
前端·javascript·vue.js·ubuntu·架构·前端框架
脾气有点小暴1 小时前
前端页面跳转的核心区别与实战指南
开发语言·前端·javascript
vipbic1 小时前
我封装了一个“瑞士军刀”级插件,并顺手搞定了自动化部署
vue.js·nuxt.js
San30.2 小时前
深入 JavaScript 内存机制:从栈与堆到闭包的底层原理
开发语言·javascript·udp
Fantastic_sj2 小时前
Vue3相比Vue2的改进之处
前端·javascript·vue.js
ttod_qzstudio4 小时前
深入理解 TypeScript 数组的 find 与 filter 方法:精准查找的艺术
javascript·typescript·filter·find
冬男zdn4 小时前
优雅处理数组的几个实用方法
前端·javascript
克喵的水银蛇5 小时前
Flutter 通用标签选择组件:TagSelector 支持单选 / 多选
javascript·windows·flutter
2503_928411565 小时前
12.9 Vue3+Vuex+Js+El-Plus+vite(项目搭建)
开发语言·javascript·ecmascript