|
@@ -0,0 +1,37 @@
|
|
|
|
|
+// API 代理 - 将 /api/* 请求转发到后端服务
|
|
|
|
|
+const API_BASE = 'https://tg-live-game-api.ifoodme.com';
|
|
|
|
|
+
|
|
|
|
|
+export const onRequest: PagesFunction = async (context) => {
|
|
|
|
|
+ const { request } = context;
|
|
|
|
|
+ const url = new URL(request.url);
|
|
|
|
|
+
|
|
|
|
|
+ // 构建目标 URL: /api/auth/login -> https://tg-live-game-api.ifoodme.com/api/auth/login
|
|
|
|
|
+ const targetUrl = `${API_BASE}${url.pathname}${url.search}`;
|
|
|
|
|
+
|
|
|
|
|
+ // 复制请求头,移除 host
|
|
|
|
|
+ const headers = new Headers(request.headers);
|
|
|
|
|
+ headers.delete('host');
|
|
|
|
|
+ headers.set('origin', API_BASE);
|
|
|
|
|
+
|
|
|
|
|
+ // 转发请求
|
|
|
|
|
+ const response = await fetch(targetUrl, {
|
|
|
|
|
+ method: request.method,
|
|
|
|
|
+ headers,
|
|
|
|
|
+ body: request.method !== 'GET' && request.method !== 'HEAD'
|
|
|
|
|
+ ? request.body
|
|
|
|
|
+ : undefined,
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 复制响应头
|
|
|
|
|
+ const responseHeaders = new Headers(response.headers);
|
|
|
|
|
+
|
|
|
|
|
+ // 添加 CORS 头
|
|
|
|
|
+ responseHeaders.set('Access-Control-Allow-Origin', url.origin);
|
|
|
|
|
+ responseHeaders.set('Access-Control-Allow-Credentials', 'true');
|
|
|
|
|
+
|
|
|
|
|
+ return new Response(response.body, {
|
|
|
|
|
+ status: response.status,
|
|
|
|
|
+ statusText: response.statusText,
|
|
|
|
|
+ headers: responseHeaders,
|
|
|
|
|
+ });
|
|
|
|
|
+};
|