若依分离版项目请求不同地址的接口,主要在于处理跨域问题,即
vue.config.js
文件处理
# 第三方服务
VUE_APP_API_SERVICE='/service'
即新增一个代理。部署项目时,如果使用
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://121.4.193.xxx:8080",//<<你想要请求的域名及端口>>
changeOrigin: true,
pathRewrite: {
[process.env.VUE_APP_API_SERVICE]: "",
},
},
// ===========这里是新增的==============
},
disableHostCheck: true,
},
封装请求处理,可参照原版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);
}
参考
api
下的接口文件配置
import request from "@/utils/requestNew";
// 查询列表
export function getCarList() {
return request({
url: "/car/list",
method: "get",
});
}
<template>
<div class="app-container">
<el-button @click="getList">测试</el-button>
</div>
</template>
<script>
import { getCarList } from "@/api/../..";
methods: {
/** 调用第三方接口 */
getList() {
getCarList().then((res) => {
console.log(res);
});
},
}
</script>
powered by kaifamiao