Files
obsidian/Веб/Клиент-сервер/Fetch API.md
T
roma-dxunvrs 12a473f46e
deploy / Pull and Restart (push) Successful in 17s
web update
2026-10-04 19:57:51 +03:00

1.3 KiB

  • Современный стандарт на замену XMLHTTPRequest
  • Поддерживается всеми современными браузерами
  • Работает на промисах

Пример кода

Чуть чуть было написано в ECMAScript

async function getData() {
	const url = "https://example.org/products.json";
	try {
		const response = await fetch(url);
		if (!response.ok) {
			throw new Error(`{response.status}`);
		}
		
		const json = await response.json();
		console.log(json);
	} catch (error) {
		console.error(error.message);
	}
}

Отправление данных через POST

async function checkPoint(x, y, r) {
	const pointData = {x: x, y: y, r: r};
	
	const response = await fetch("/api/check", {
		method: "POST",
		headers: {
			"Content-Type": "application/json"
		},
		body: JSON.stringify(pointData)
	});
	
	const res = await response.json();
	console.log(res.hit);
}

Как работает

  • Получение данных работает в два этапа: асинхронное получение ответа, затем асинхронное получение тела (данные могут быть большими и передаться потоком - Stream)