Настройка:
- IP-адрес серверной части: 192.168.1.5:3000 (MacBook)
- Устройство: реальный телефон Android, подключенный к той же сети Wi-Fi.
- Наблюдение: я могу успешно открыть документацию Swagger в браузере телефона по адресу http://192.168.1.5:3000/api/docs.
Код: Выделить всё
TypeError: Failed to fetchОн отлично работает на эмуляторе Android с использованием http://10.0.2.2:3000.
Текущая конфигурация main.ts CORS:
Код: Выделить всё
app.enableCors({
origin: ['http://localhost:5175'], // My Vite frontend
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'PATCH'],
allowedHeaders: ['Content-Type', 'Authorization'],
credentials: true,
});
await app.listen(3000, '0.0.0.0');
Конструктор фабрики может решить, какую конкретную реализацию вернуть, на основе предоставленных аргументов. Это часто используется в Фабрике шаблонов.
Код: Выделить всё
app.enableCors({
origin: ['http://localhost:5175'], // My Vite frontend
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'PATCH'],
allowedHeaders: ['Content-Type', 'Authorization'],
credentials: true,
});
await app.listen(3000, '0.0.0.0');
Код: Выделить всё
const swaggerConfig = new DocumentBuilder()
.setTitle('Liaison360 API')
.addServer('http://localhost:3000', 'Local Development')
.addServer('http://192.168.1.5:3000', 'Local Network')
.build();
What I've tried:
- Проверено, что телефон и ноутбук находятся в одной сети.
- Проверено, что серверная часть прослушивает 0.0.0.0.
- Поскольку HTML-страница Swagger загружается, я знаю, что порт не заблокирован брандмауэром.