@WaveOfDandelions

Почему CORS не блокирует POST запросы, при запрете на сервере?

Проблема состоит в том что на сервере явно указано какие методы может обрабатывать сервер, но сервак дырявый и все равно отдает данные. Как пофиксить чтобы заголовки CORS запрещали получать данные с помощью POST запроса?
Другие методы, CORS не пропускает, проблема только с POST.
Запрос является не простым, у меня стоит Content-Type: application/json.
chat gpt спрашивал, тот только советует явно в коде запретить обращаться с помощью POST.

server.js

import http from "node:http";

// Заголовки CORS
const setCORSHeaders = (res) => {
	res.setHeader("Access-Control-Allow-Origin", "*");
	res.setHeader("Access-Control-Allow-Headers", "Content-Type");
	res.setHeader("Access-Control-Allow-Methods", "GET");
	res.setHeader("Access-Control-Max-Age", "86400"); // 24 часа
};

const server = http.createServer((req, res) => {
setCORSHeaders(res);
	// Preflight Запрос
	if (req.method === "OPTIONS") {
		res.writeHead(200);
		res.end();
		return;
	}

	if (req.url === "/data") {
		const responseData = { message: "Data Get Successfully" };
		res.writeHead(200, { "Content-Type": "application/json" });
		res.end(JSON.stringify(responseData));
	} else {
		res.writeHead(404, { "Content-Type": "application/json" });
		res.end(JSON.stringify({ error: "Ресурс не найден" }));
	}
});

const port = 5050;
server.listen(port, () => {
	console.log(`Сервер запущен на порту ${port}`);
});


client.js

function getData() {
	fetch("http://localhost:5050/data", {
		method: "POST",
		headers: {
			"Content-Type": "application/json",
		},
	})
		.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);
		});
}

let serverData = document.querySelector(".getData");

serverData.addEventListener("click", getData);


DevTools: Network - POST ЗАПРОС КОТОРЫЙ ДОЛЖЕН НЕ РАБОТАТЬ
667e35a135233746656089.png

DevTools: Network - PUT,PATCH,DELETE ЗАПРОСЫ КОТОРЫЕ НЕ РАБОТАЮТ КАК И ЗАДУМЫВАЛОСЬ
667e3517dcc57353726708.png
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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