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

hykeda3年前Vue3899

最近在开发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二维码生成

一、装上插件npm install --save qrcode.vue二,引入插件到页面中import QrcodeVue from ...

在html5中使用Vue3,并且使用组件形式

有的时候为了使用vue编写一些前端程序,如果直接搭建框架感觉太过庞大了。如何直接在html中使用呢?接下来详细介绍:1)引入Vue,并创建Vue实例在官网上,已经讲得很清楚了,我们可以这样使用&nbs...

在写css时不起作用,请排查是否是scoped的问题

在写css的时候,用了框架自带的组件table和card,把table包在了card里面,然后发现table的分页样式出现了问题,查看源码后发现card中写了ul li { margin-left:2...

useRoute,userRouter的用法

 import { useRoute, useRouter } from 'vue-router'; 这里的useRoute是获取传递的变量:const route...

npm简介

npm简介

做前端开发,如果项目达到了一定的规模,就离不开npm了。下面简单介绍一下npm的知识。1、npm的含义npm,Node Package Manager的缩写,也就是“节点的包管理器”。顾名思义,npm...

pinia中数据解构

在vuex中获取state中的数据可以解构的方式如下:import { mapState,mapMutations } from "vuex...

发表评论    

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