diff --git a/ak/config.uts b/ak/config.uts index 14cc343b..cee17672 100644 --- a/ak/config.uts +++ b/ak/config.uts @@ -4,13 +4,16 @@ // IP: 192.168.1.62 // Kong HTTP Port: 8000 //自己的配置自己解开即可 -export const SUPA_URL: string = 'http://192.168.1.61:18000' -export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' +// export const SUPA_URL: string = 'http://192.168.1.61:18000' +// export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' //export const SUPA_URL: string = 'http://192.168.1.62:18000' //export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' // export const SUPA_URL: string = 'http://192.168.1.61:18000' // export const SUPA_KEY: string = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJyb2xlIjogImFub24iLCAiaXNzIjogInN1cGFiYXNlIiwgImlhdCI6IDE3Njk4NDczMzQsICJleHAiOiAyMDg1MjA3MzM0fQ.js-2CS5_cUmf4iVv8aCmmx9iyFsQvLNDbt8YYOngeLU' +export const SUPA_URL: string = 'http://119.146.131.237:9126' +export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' + // WebSocket 实时连接(内网使用 ws:// 而非 wss://) // export const WS_URL: string = 'ws://192.168.1.61:18000/realtime/v1/websocket' //export const WS_URL: string = 'ws://192.168.1.62:18000/realtime/v1/websocket' diff --git a/pages.json b/pages.json index f0297591..1b0d0218 100644 --- a/pages.json +++ b/pages.json @@ -451,8 +451,7 @@ }, { "root": "pages/mall/admin", - "pages": [ - ] + "pages": [] }, { "root": "pages/mall/admin/order", diff --git a/pages/mall/admin/docs/UNI_APP_X_PAGE_FIX_GUIDE.md b/pages/mall/admin/docs/UNI_APP_X_PAGE_FIX_GUIDE.md index cc0f292b..89a5dc58 100644 --- a/pages/mall/admin/docs/UNI_APP_X_PAGE_FIX_GUIDE.md +++ b/pages/mall/admin/docs/UNI_APP_X_PAGE_FIX_GUIDE.md @@ -2069,6 +2069,50 @@ const iconMap: Record = { **解决方案:** 在 `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 类问题,为后续开发提供了完整的故障排除和标准化指导。 🚀 diff --git a/pages/mall/admin/marketing/coupon/list.uvue b/pages/mall/admin/marketing/coupon/list.uvue index d13ec5b1..23ebc2da 100644 --- a/pages/mall/admin/marketing/coupon/list.uvue +++ b/pages/mall/admin/marketing/coupon/list.uvue @@ -122,23 +122,46 @@ - - 共 {{ dataList.length }} 条 - - 10 条/页 ▼ - + + 共 {{ pageState.total }} 条 + + + + {{ pageState.pageSize }} 条/页 + + + + - - 1 - 2 - + + + + + + {{ p === -1 ? '...' : p }} + + + + + + 前往 - + + + + + 暂无数据 + @@ -175,7 +198,7 @@