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

Ruoyi-Vue项目请求不同地址的接口,主要在于处理跨域问题,即vue.config.js文件处理,该请求方式一般只应用于本地调试,生产环境可使用nginx监听请求地址进行配置

配置完成后提示404的同学,检查下vue.config.js的target+接口文件的url,拼接完成后是否是正确的请求地址

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

# 第三方服务
VUE_APP_API_SERVICE='/service'

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,
  });

  // request拦截器
  instance.interceptors.request.use(config => {
  	...请求逻辑,参考request.js文件
    // config.headers['Authorization'] = 'Bearer ' + getToken()
  })

  // 请求响应拦截
  instance.interceptors.response.use((res) => {
    return res.data;
  });

  // 发送请求
  return instance(config);
}

4. 新增接口文件

参考api下的接口文件配置

import { requestService as 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>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值