[*] Отправляет запрос сообщения по адресу https://mybackend.com/api/proxy
Backend
- li -express.js. маршрутизатор < /li>
- Обнаружено промежуточное программное обеспечение Cors (пакет NPM)
Код: Выделить всё
cors - Все заголовки (и т. Д.) Установите правильно
Код: Выделить всё
Access-Control-Allow-Origin - Сервер прослушивается на процессе.env.port || 3000
Когда я пытаюсь отправить запрос сообщения с моего фронта, я получаю эту ошибку в браузере:
ocount 'https://mybackend.com/api/proxy' от https://mybackend.com/api/proxy '. был заблокирован политикой CORS:
no 'Access-Control-allow-Origin' Заголовок присутствует в запрошенном ресурсе.
Код: Выделить всё
import express from 'express';
import cors from 'cors';
import helmet from 'helmet';
import dotenv from 'dotenv';
import rateLimit from 'express-rate-limit';
import proxyRoutes from './routes/proxy.js';
dotenv.config();
const app = express();
const PORT = process.env.PORT || 3000;
// Security headers
app.use(helmet());
// CORS — OPEN TO FULL REQUESTS 🔓
app.use(cors({
origin: '*',
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization'],
credentials: false
}));
// Open gate to Preflight
app.options('*', cors());
// JSON body parser
app.use(express.json());
// Rate Limiter
app.use(rateLimit({
windowMs: 15 * 60 * 1000,
max: 200,
standardHeaders: true,
legacyHeaders: false,
}));
// endpoint
app.get('/', (req, res) => {
res.send('API Gateway active.');
});
// Proxy route
app.use('/api/proxy', proxyRoutes);
app.listen(PORT, '0.0.0.0', () => {
console.log(`🚀 Server running at http://0.0.0.0:${PORT}`);
});
< /code>
frontend < /strong> (tsx): < /p>
const res = await fetch('https://mybackend.com/api/proxy', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
if (!res.ok || !res.body) {
throw new Error('Stream failed');
}
const reader = res.body.getReader();
const decoder = new TextDecoder('utf-8');
let result = '';
let usage: Message['usage'] = {
prompt_tokens: 0,
completion_tokens: 0,
total_tokens: 0
};Подробнее здесь: https://stackoverflow.com/questions/797 ... x-frontend