Explorar o código

🐛 fix(shared-ui-components): 修复URL中多余斜杠的问题
- 处理URL中的连续斜杠,将其替换为单个斜杠(保留协议后的双斜杠)
- 修复路径末尾斜杠与查询参数前斜杠的冲突问题

🔧 chore(web): 更新areaClientManager的API路径
- 将区域管理API路径从/api/v1/areas调整为/api/v1/admin/areas

yourname hai 1 mes
pai
achega
ff758c526a

+ 8 - 1
packages/shared-ui-components/src/utils/hc.ts

@@ -12,8 +12,15 @@ const axiosFetch = async (url: RequestInfo | URL, init?: RequestInit) => {
     })
   }
 
+  // 处理URL中的多余斜杠
+  let requestUrl = url.toString()
+  // 替换连续的斜杠为单个斜杠,但保留协议后的双斜杠
+  requestUrl = requestUrl.replace(/([^:])\/\/+/g, '$1/')
+  // 处理路径末尾的斜杠和查询参数前的斜杠
+  requestUrl = requestUrl.replace(/\/\?/g, '?')
+
   const response = await axios.request({
-    url: url.toString(),
+    url: requestUrl,
     method: init?.method || 'GET',
     headers: requestHeaders,
     data: init?.body,

+ 1 - 1
web/src/client/api_init.ts

@@ -17,7 +17,7 @@ import { advertisementClientManager } from '@d8d/advertisement-management-ui-mt/
 userClientManager.init('/api/v1/users');
 authClientManager.init('/api/v1/auth');
 fileClientManager.init('/api/v1/files');
-areaClientManager.init('/api/v1/areas');
+areaClientManager.init('/api/v1/admin/areas');
 supplierClientManager.init('/api/v1/suppliers');
 merchantClientManager.init('/api/v1/merchants');
 orderClientManager.init('/api/v1/orders');