关于Vite+Axios跨域问题解决


前言

在学习Vite+ Axios进行前后端分离时,出现了跨域问题,研究Vite文档后,解决了该问题


提示:以下是本篇文章正文内容,下面案例可供参考

一、遇到的问题

在这里插入图片描述
跨域报错截图

二、分析及解决方式

1.分析

跨域主要是同源策略原因导致;

 什么是同源:

                即——同协议,同ip,同端口;

 所以跨域问题,是请求与返回不同源导致;

2.解决跨域问题

为了解决该问题,我去翻了翻vite的官方文档:https://vitejs.dev/config/server-options.html

export default defineConfig({
    server: {
        proxy: {
            // string shorthand: http://localhost:5173/foo -> http://localhost:4567/foo
            '/foo': 'http://localhost:4567',
            // with options: http://localhost:5173/api/bar-> http://jsonplaceholder.typicode.com/bar
            '/api': {
                target: 'http://jsonplaceholder.typicode.com',
                changeOrigin: true,
                rewrite: (path) => path.replace(/^\/api/, ''),
            },
            // with RegEx: http://localhost:5173/fallback/ -> http://jsonplaceholder.typicode.com/
            '^/fallback/.*': {
                target: 'http://jsonplaceholder.typicode.com',
                changeOrigin: true,
                rewrite: (path) => path.replace(/^\/fallback/, ''),
            },
            // Using the proxy instance
            '/api': {
                target: 'http://jsonplaceholder.typicode.com',
                changeOrigin: true,
                configure: (proxy, options) => {
                    // proxy will be an instance of 'http-proxy'
                },
            },
            // Proxying websockets or socket.io: ws://localhost:5173/socket.io -> ws://localhost:5174/socket.io
            '/socket.io': {
                target: 'ws://localhost:5174',
                ws: true,
            },
        },
    },
})

里面有关于服务代理的配置解释,我们需要在vite.config.js中加入以上server.proxy配置;

'/api'就是针对api请求的拦截,名字可以自定义,主要是针对类似:/api/getInfo这类的拦截,将请求,全部拦截为api下的target,再经过rewrite path ,将请求路径进一步组装成需要的样子;

其中'changeOrigin',是关于host header的修改,true就是用target替换host header;false就是默认不替换,使用前端host,具体可以自行前后端验证;也就是说,这块和跨域暂时看来,没多大关系,可以不加;

rewrite:重写可以将路径改为你喜欢的样子;

基本上axios有用过,在vite.config.js这里再加上这个配置,报错就解决了,接口也可以正常调用了;


总结

vite + axios基础知识提升

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 基于Vue3+ElementPlus+Pinia+Vite+Axios的智慧社区前台管理界面源码+项目说明.zip 【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值