Ruoyi-Vue处理跨域问题、同时请求多个域名接口(前端处理)

技术用户 2024-07-16 17:33:08 阅读 96

目录

1. 修改配置文件(.env.development/.env.production)2. 修改vue.config.js文件3. 新建requestNew.js文件4. 新增接口文件使用示例

Ruoyi-Vue项目请求不同地址的接口,主要在于处理跨域问题,即vue.config.js文件处理

1. 修改配置文件(.env.development/.env.production)

<code># 第三方服务

VUE_APP_API_SERVICE='/service'code>

2. 修改vue.config.js文件

即新增一个代理。部署项目时,如果使用nginx等代理方式,记得配置VUE_APP_API_SERVICE对应的路径及跳转地址

devServer: {

host: "0.0.0.0",

port: port,

open: true,

proxy: {

[process.env.VUE_APP_BASE_API]: {

target: `http://localhost:8080`,

changeOrigin: true,

pathRewrite: {

["^" + process.env.VUE_APP_BASE_API]: "",

},

},

// ===========这里是新增的==============

[process.env.VUE_APP_API_SERVICE]: {

target: "http://47.100.25.xxx:8080",//<<你想要请求的域名及端口>>

changeOrigin: true,

pathRewrite: {

[process.env.VUE_APP_API_SERVICE]: "",

},

},

// ===========这里是新增的==============

},

disableHostCheck: true,

},

3. 新建requestNew.js文件

封装请求处理,可参照原版Ruoyi的封装请求

import axios from "axios";

export function requestService(config) {

// 创建axios实例

const instance = axios.create({

baseURL: process.env.VUE_APP_API_SERVICE,

timeout: 5000,

});

// 请求响应拦截

instance.interceptors.response.use((res) => {

return res.data;

});

// 发送请求

return instance(config);

}

4. 新增接口文件

参考api下的接口文件配置

import request from "@/utils/requestNew";

// 查询列表

export function getCarList() {

return request({

url: "/car/list",

method: "get",

});

}

使用示例

<template>

<div class="app-container">code>

<el-button @click="getList">测试</el-button>code>

</div>

</template>

<script>

import { getCarList } from "@/api/../..";

methods: {

/** 调用第三方接口 */

getList() {

getCarList().then((res) => {

console.log(res);

});

},

}

</script>



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。