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

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

相关推荐
LSL666_1 小时前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html
小飞侠在吗1 小时前
vue computed 和 watch
前端·javascript·vue.js
诸葛老刘2 小时前
next.js 框架中的约定的特殊参数名称
开发语言·javascript·ecmascript
毕设十刻2 小时前
基于Vue的考勤管理系统8n7j8(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
coding随想2 小时前
掌控选区的终极武器:getSelection API的深度解析与实战应用
java·前端·javascript
沐风。563 小时前
Object方法
开发语言·前端·javascript
JS_GGbond3 小时前
JavaScript入门学习路线图
开发语言·javascript·学习
BD_Marathon4 小时前
【JavaWeb】JS_JSON在客户端的使用
开发语言·javascript·json
仙人掌一号4 小时前
梳理SPA项目Router原理和运行机制 [共2500字-阅读时长10min]
前端·javascript·react.js
粥里有勺糖4 小时前
视野修炼-技术周刊第128期 | Bun 被收购
前端·javascript·github