Клиент на localhost поднимаю как и сервер, ошибка появляется когда клиентом выступает браузер.
Когда делаю запрос через Postman, то получаю json как и должно быть.
Код сервака
import http from "node:http";
const server = http.createServer((req, res) => {
// Preflight Запрос
if (req.method === "OPTIONS") {
// Разрешаем запросы с любого источника
res.setHeader("Access-Control-Allow-Origin", "*");
// Разрешаем передачу заголовков Content-Type и Authorization
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
// Разрешаем GET и POST запросы
res.setHeader("Access-Control-Allow-Methods", "GET, POST");
res.writeHead(200);
res.end();
return;
}
// Обработка различных эндпоинтов
if (req.url === "/data" && req.method === "GET") {
// Обработка GET запроса для /data
const responseData = { message: "Data Get Successfully" };
res.writeHead(200);
res.end(JSON.stringify(responseData));
} else {
// Обработка случая, когда запрос не соответствует ни одному из эндпоинтов
res.writeHead(404);
res.end(JSON.stringify({ error: "Ресурс не найден" }));
}
});
const port = 5050;
server.listen(port, () => {
console.log(`Сервер запущен на порту ${port}`);
});
Запрос со стороны клиента
<button onclick="getData()">Получить данные</button>
div id="response"></div>
<script>
// Функция для отправки GET-запроса
function getData() {
fetch("http://localhost:5050/data", {
method: "GET",
headers: {
"Content-Type": "application/json",
// Authorization: "Bearer your-token-here",
},
})
.then((response) => {
if (response.ok) {
return response.json();
}
throw new Error("Network response was not ok");
})
.then((data) => {
document.getElementById("response").textContent =
JSON.stringify(data);
})
catch((error) => {
console.error("Error:", error);
});
}
</script>