vite配置代理proxy实现跨域问题

hykeda3年前Vue3911

最近在开发vite+vue项目时,调用接口获取服务器数据时提示接口有跨域问题,解决办法是配置代理:

export default defineConfig({
  //配置代理
  server: {
    proxy: {
      '/api': {
        target: 'https://api.baidu.com',
        ws: true,
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
});

创建request.ts文件,然后配置好axios调用接口:

import axios from 'axios';
// 配置新建一个 axios 实例
const service = axios.create({
    baseURL: 'http://localhost:8888',
    timeout: 50000,
    headers: { 'Content-Type': 'application/json' },
});

创建一个接口文件xxx.ts,引入request.ts

import request from '/@/utils/request';

export function useApi() {
    return {
        ceshi:()=>{
            return request({
                url: '/api/adminMenu.json',
                method: 'get',
            })
        }
    };
}


在我们调用ceshi这个方法时,我们访问的接口为:http://localhost:8888/api/adminMenu.json,我们做了代理以后会捕捉到路由中的‘/api’如果存在则路由会变成:https://api.baidu.com/adminMenu.json,

这样我们就能访问到真实的接口:https://api.baidu.com/adminMenu.json 中的数据了


注意:代理地址如果是本地地址,尽量不要用https://localhost/adminMenu.json,可以用https://127.0.0.1/adminMenu.json代替

标签: vite代理proxy

相关文章

直接在浏览器中使用 vue3+element-plus中icons的方法

首先引入文件,如果用cdn的方式:<script src="//unpkg.com/@element-plus/icons-vue"></script&...

关于uni-app 中 使用async + await 将异步请求同步化

这段时间在使用uni-app开发小程序,希望在页面加载时,获取地区数据,然后展示到页面上。一开始写在了onLoad方法上,发现页面加载时,用异步uni.request方法获取数据,当页面加载完后,异步...

vue3中defineProps传值使用ref响应式失效详解

子组件接收父组件的传参。父组件:<template> <Son :data="data"/> </template> <s...

学习lodash

官网:https://www.lodashjs.com/ 链接:https://www.jianshu.com/p/d46abfa4ddc9 简介 L...

前端常用的UI组件库

Arco DesignTaro UISemi DesignAnt DesignElementView DesignVantLayui-vueFusion Design1. Arco Desi...

vue3中给响应式数据赋值操作,以及toRef 和 toRefs区别

最近在开发vue3时,定义了一个变量:let form = reactive({});form = res.items;这里我将接口获取到的数据直接赋给了form,这样我在表单中:<el-for...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。