当前位置: 首页 > article >正文

Vue中跨域问题的解决

目录

1 跨域的概念

2 解决办法

2.1 修改请求实例的公共前缀

 2.2 修改vite.config.js文件


1 跨域的概念

由于浏览器的同源策略限制,向不同源(不同协议、不同域名、不同端口)发送ajax请求会失败

2 解决办法

原理:使得浏览器向两个端口发送请求和接手请求,变成了浏览器只和前端端口交互,后端与前端交互。

2.1 修改请求实例的公共前缀

假如你有个请求的实例如下:

//其它代码
const baseURL = 'http://localhost:8080';    //公共前缀
const instance = axios.create({baseURL});

现需要将其修改成如下:

//保证和前端的端口号相同为5173
//相当于http://localhost:5173/api
const baseURL = '/api';    
const instance = axios.create({baseURL});

 2.2 修改vite.config.js文件

初始化情况如下:

//其它代码
export default defineConfig({
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

现在需要向其中添加内容使其变成:

export default defineConfig({
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server: {
    proxy: {
      //拦截所有包含/api的链接
      '/api': {
        //转换的目标链接将5173转为8080,由前端发送
        target: 'http://localhost:8080',  
        //是否换源,true则转化  
        changeOrigin: true,    
        //使得转换后的链接中的/api变成空字符串
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }
})

http://www.kler.cn/a/227794.html

相关文章:

  • 红队渗透靶机:LORD OF THE ROOT: 1.0.1
  • 聊聊并发编程,另送5本Golang并发编程新书
  • LeetCode--代码详解 1.两数之和
  • 为 Windows10 22H2 启用 Microsoft Copilot 功能
  • Android 中的卡顿优化
  • 【JavaEE进阶】 图书管理系统开发日记——肆
  • 1452 - Cannot add or update a child row
  • ES证书过期,错误信息: current license is non-compliant for [security]
  • 大数据信用报告在线查询平台哪个好?
  • [python]基于LSTR车道线实时检测onnx部署
  • 13.2 Web与Servlet进阶(❤❤)
  • Redis(十一)单线程VS多线程
  • [机缘参悟-145] :一个软件架构师对佛学的理解 -9- 修行的目标和层次:净心、智慧和解脱
  • 后端返回给前端的数据格式有哪些?
  • 【数据分享】1米分辨率土地覆盖数据集SinoLC-1
  • 【Oracle 集群】RAC知识图文详细教程(三)--RAC工作原理和相关组件
  • uniapp 组件封装
  • nodejs学习计划--(八)MongoDB数据库
  • vue基本理解
  • 09. BI - 数据可视化,如何进行基本图形绘制