You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite开发服务器CORS失效但Webpack开发服务器正常问题排查

Vite开发服务器CORS报错原因及解决方案

问题原因

  • Webpack Dev Server此前大概率配置了接口代理,将对远程Java BE的请求转发至目标服务器,浏览器实际请求的是本地开发服务器,规避了跨域限制;而Vite默认无此代理配置,浏览器直接向远程BE发起跨域请求,触发CORS校验失败。
  • 远程Java BE服务器未配置允许本地开发域名(localhost.devcommweb100.somecompany.com)的跨域响应头,导致预检请求未通过浏览器的访问控制检查。

解决建议

配置Vite接口代理

在Vite配置文件(vite.config.js或vite.config.ts)中添加server.proxy配置,将接口请求转发至远程BE服务器,避免浏览器直接跨域:

import { defineConfig } from 'vite';
import fs from 'fs';

export default defineConfig({
  server: {
    // 配置公司提供的SSL证书与密钥
    https: {
      cert: fs.readFileSync('./path/to/your-local-cert.crt'),
      key: fs.readFileSync('./path/to/your-local-key.key')
    },
    proxy: {
      // 根据实际接口前缀配置,示例匹配/px/th开头的请求
      '/px/th': {
        target: 'https://th-api-devmir2405212107.px.nonprod.somecompany.io',
        changeOrigin: true, // 确保请求头中的Host字段与目标服务器匹配
        secure: true // 目标为HTTPS服务,启用安全校验
      }
    }
  }
});
  • 若远程BE主机名频繁变动,可将目标地址存入环境变量(如.env文件中的VITE_BE_TARGET),在配置文件中通过import.meta.env.VITE_BE_TARGET动态获取。

调整前端请求路径

确保应用内的fetch请求使用相对路径(如/px/th/appointment)而非远程BE的完整URL,这样请求才会被Vite代理拦截转发。

内容的提问来源于stack exchange,提问作者Jordan Everscending

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:56:09