WalleGriffkinder commited on
Commit
7a4b1ae
·
verified ·
1 Parent(s): 0fd2341

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +14 -3
index.js CHANGED
@@ -14,14 +14,20 @@ app.all('*', async (req, res) => {
14
  if (req.url === '/') return;
15
 
16
  try {
17
- const url = `https://generativelanguage.googleapis.com${req.url}`;
 
18
 
 
 
 
 
 
19
  // Копируем и фильтруем заголовки
20
  const headers = {...req.headers};
21
  delete headers['host'];
22
  delete headers['content-length'];
23
 
24
- const response = await fetch(url, {
25
  method: req.method,
26
  headers,
27
  body: req.method !== 'GET' ? req.body : undefined
@@ -34,13 +40,18 @@ app.all('*', async (req, res) => {
34
  return;
35
  }
36
 
 
 
 
 
 
37
  // Regular response
38
  const data = await response.buffer();
39
  res.status(response.status);
40
- res.set('Content-Type', response.headers.get('content-type'));
41
  res.send(data);
42
 
43
  } catch (error) {
 
44
  res.status(500).send(error.message);
45
  }
46
  });
 
14
  if (req.url === '/') return;
15
 
16
  try {
17
+ // Убираем первый слэш и декодируем URL
18
+ const targetUrl = decodeURIComponent(req.url.substring(1));
19
 
20
+ // Проверяем что это валидный URL
21
+ if (!targetUrl.startsWith('http')) {
22
+ return res.status(400).send('Invalid URL');
23
+ }
24
+
25
  // Копируем и фильтруем заголовки
26
  const headers = {...req.headers};
27
  delete headers['host'];
28
  delete headers['content-length'];
29
 
30
+ const response = await fetch(targetUrl, {
31
  method: req.method,
32
  headers,
33
  body: req.method !== 'GET' ? req.body : undefined
 
40
  return;
41
  }
42
 
43
+ // Копируем все заголовки из ответа
44
+ response.headers.forEach((value, key) => {
45
+ res.setHeader(key, value);
46
+ });
47
+
48
  // Regular response
49
  const data = await response.buffer();
50
  res.status(response.status);
 
51
  res.send(data);
52
 
53
  } catch (error) {
54
+ console.error('Proxy error:', error);
55
  res.status(500).send(error.message);
56
  }
57
  });