Ответ
Разные порты на одном домене не считаются разными доменами с точки зрения Same-Origin Policy.
Пример:
http://example.com:3000 и http://example.com:8080 имеют одинаковый origin (домен, протокол), несмотря на разные порты. Однако, если порт явно не указан, браузер использует стандартный (80 для HTTP, 443 для HTTPS).
Но! CORS и другие механизмы безопасности могут учитывать порты, если они явно заданы в заголовках. На практике большинство API требуют явного разрешения разных портов через Access-Control-Allow-Origin.
// Запрос с порта 3000 на порт 8080 того же домена:
fetch('http://example.com:8080/api')
.then(response => response.json())
.then(data => console.log(data));
Если сервер не разрешил порт 8080 в CORS, запрос будет заблокирован.