Задать вопрос
@WaveOfDandelions

Почему при указанном CORS заголовке, пишет что нет заголовка?

Клиент на localhost поднимаю как и сервер, ошибка появляется когда клиентом выступает браузер.
Когда делаю запрос через Postman, то получаю json как и должно быть.

667d4775e0210402505952.png
667d477f84abf794866102.png

Код сервака

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>
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Средний 7 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы