开发时需在 vite.config.ts 中配置 server.proxy 实现跨域代理,如 '/api' 代理至 'http://127.0.0.1:3000' 并设 changeOrigin: true;生产环境须用 Nginx/Apache 反向代理,proxy 配置仅限开发生效。uni-app H5端跨域报错 CORS 怎么办uni-app 的 H5 端本质是运行在浏览器里,发起的请求受同源策略限制。开发时直接访问后端接口(比如 http://localhost:3000/api/user)会触发 CORS 错误,不是 uni-app 本身的问题,而是浏览器拦住了------它不认你本地服务和后端服务是"一家的"。解决思路只有一条:让开发服务器(npm run dev:h5 启动的 vite/h5 server)帮你把请求转发过去,伪装成同源请求。生产环境不能靠代理,但开发阶段必须配好这个。代理只在 npm run dev:h5 下生效,build 后的静态文件部署到 Nginx/Apache 时需另配反向代理uni-app 的 H5 模式用的是 Vite,所以代理配置写在 vite.config.ts 或 vite.config.js 里,不是 vue.config.js别往 manifest.json 或 h5.devServer 字段里塞代理配置------那个字段已废弃,v3.0+ 不再识别怎么配 server.proxy 让请求通打开项目根目录的 vite.config.ts(没有就新建),在 defineConfig 的 server 选项里加 proxy:export default defineConfig({ server: { proxy: { '/api': { target: 'http://127.0.0.1:3000', changeOrigin: true, rewrite: (path) => path.replace(/^/api/, '') } } }})/api 是前端请求的前缀,比如你写 uni.request({ url: '/api/user' }),就会被代理target 必须带协议(http:// 或 https://),不能只写 localhost:3000,否则报 Error: Invalid URLchangeOrigin: true 是关键,它改写请求头中的 Host,让后端以为请求真来自目标域名如果后端要求路径保留 /api,就删掉 rewrite;多数 REST API 需要删掉,否则后端收不到 /api/xxx为什么 uni.request 还是 404 或 504代理配了但请求仍失败,大概率是路径或协议没对上,而不是代码逻辑问题。 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能
相关推荐
就叫_这个吧3 小时前
Redis从基础命令到核心机制简单介绍dear_bi_MyOnly4 小时前
【MyBatis 操作数据库】DBA_G5 小时前
南大通用GBase 8s数据库新存储引擎核心能力二_Jimmy_6 小时前
Agent 溯源精度提升方案衣乌安、6 小时前
数据库事务原理与回滚机制CodexDave7 小时前
PostgreSQL 明明有索引却选了 Nested Loop:从行数误判修正执行计划SamChan907 小时前
在Web应用中集成PDF多语言翻译功能:PDFTranslator API实战指南天天进步20157 小时前
Python全栈项目--智能办公自动化系统颜酱8 小时前
09 | 重构项目结构czhaii9 小时前
STC ai助手单片机工程项目创建实例