增添分页配置

This commit is contained in:
2026-03-09 09:44:04 +08:00
parent 1673022ea3
commit e5ad13d6f5
6 changed files with 368 additions and 149 deletions

View File

@@ -2069,6 +2069,50 @@ const iconMap: Record<string, string> = {
**解决方案:**
在 `vite.config.js` 中配置 `build.rollupOptions.output.manualChunks`,将 `node_modules` 下的大型库强制拆分为独立文件(如 `vendor-vue`、`vendor-uni`)。这样首屏加载只需下载一次体积恒定的核心库,后续仅下载变化的业务代码。
### 原因三十一:跨域预检失败导致 REST 请求被浏览器拦截 (CORS Preflight)
**现象:**
- 控制台报错:
- `Access to XMLHttpRequest at 'http://192.168.1.61:9122/rest/v1/...' from origin 'http://localhost:5173' has been blocked by CORS policy`
- `Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header`
- `GET ... net::ERR_FAILED`
**原因分析:**
1. H5 调试环境的页面源是 `http://localhost:5173`,请求目标是 `http://192.168.1.61:9122`,属于跨域请求(协议/域名/IP/端口任一不同即跨域)。
2. 业务请求携带 `apikey`、`authorization`、`content-type` 等非简单请求头时,浏览器会先发 `OPTIONS` 预检请求。
3. 目标服务(通常是网关/Kong/Nginx对 `OPTIONS` 响应中缺少 `Access-Control-Allow-Origin`(以及允许方法、允许头),浏览器会在前端直接拦截后续 GET/POST。
4. 配置地址与实际请求地址不一致也会放大问题,例如项目配置可能是 `192.168.1.61:9122`,而实际报错请求是其他主机,两者很可能不是同一服务或同一网关配置。
**解决方案:**
1. **后端网关开启 CORS根本修复**
- 允许来源:`http://localhost:5173`
- 允许方法:`GET, POST, PUT, PATCH, DELETE, OPTIONS`
- 允许请求头:`apikey, authorization, content-type, prefer, x-client-info`
- 确保 `OPTIONS` 返回 `200/204` 且带完整 CORS 响应头
2. **本地开发使用 Vite 代理(前端临时规避)**
- 在 `vite.config.js` 配置 `server.proxy`,将 `/rest/v1`、`/auth/v1` 等路径代理到真实网关,避免浏览器直接跨域。
3. **统一 URL 配置**
- 检查 `ak/config.uts` 中 `SUPA_URL` 与实际发起请求的主机是否一致,避免请求落到未配置 CORS 的地址。
**快速排查命令(后端自检):**
```bash
curl -i -X OPTIONS "http://192.168.1.61:9122/rest/v1/ml_coupon_templates?select=*" \
-H "Origin: http://localhost:5173" \
-H "Access-Control-Request-Method: GET" \
-H "Access-Control-Request-Headers: apikey,authorization,content-type"
```
若响应头中没有 `Access-Control-Allow-Origin`,即可确认是服务端 CORS 配置问题,而非前端语法或请求代码问题。
---
这个指南现在涵盖了 uni-app-x 项目开发中最常见的 30 类问题,为后续开发提供了完整的故障排除和标准化指导。 🚀
这个指南现在涵盖了 uni-app-x 项目开发中最常见的 31 类问题,为后续开发提供了完整的故障排除和标准化指导。 🚀