Junior
Какво приема методът fetch?
sobes.tech AI
Отговор от AI
Методът fetch приема един задължителен аргумент — пътя към заявката (RequestInfo или URL) — и един опционален аргумент — обект с настройки (RequestInit).
Задължителен аргумент (input):
- Стринг: URL на ресурса.
- Обект
Request: Екземпляр на класаRequest, който предоставя по-гъвкава настройка на заявката (заглавки, метод и т.н.).
Опционален аргумент (init): Обект с полета, описващи настройките на заявката. Някои често използвани полета:
method: HTTP метод на заявката (GET,POST,PUT,DELETE,OPTIONSи др.).headers: Заглавки на заявката. Може да бъде обект с ключ-стойност или екземпляр на класаHeaders.body: Тяло на заявката (за методи, различни отGETилиHEAD). Може да бъде стринг,ArrayBuffer,TypedArray,DataView,Blob,FormData,URLSearchParamsилиReadableStream.mode: Режим на заявката (cors,no-cors,same-origin,navigate).credentials: Настройка за изпращане на идентификационни данни (omit,same-origin,include).cache: Настройка за кеширане (default,no-store,reload,no-cache,force-cache,only-if-cached).redirect: Как да се обработват пренасочвания (follow,error,manual).referrer: Стойност за заглавкатаReferer.referrerPolicy: Политика за предаване на заглавкатаReferer.integrity: Стойност за заглавкатаIntegrity. Използва се за Subresource Integrity.keepalive: Булева стойност, указваща дали заявката трябва да остане активна след приключване на страницата (за изпращане на аналитика или отчети).signal: Екземпляр наAbortSignalза отменяне на заявката.window: Обект Window, с който е асоциирана заявката (по подразбиране текущият прозорец).
Пример за използване:
// GET заявка
fetch('/api/users')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Грешка:', error));
// POST заявка с тяло и заглавки
fetch('/api/products', {
method: 'POST', // HTTP метод
headers: {
'Content-Type': 'application/json', // Тип на изпращаните данни
'Authorization': 'Bearer your_token' // Пример за авторизационен заглавка
},
body: JSON.stringify({ name: 'Нов продукт', price: 100 }) // Тяло на заявката
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP грешка! статус: ${response.status}`);
}
return response.json();
})
.then(data => console.log('Успех:', data))
.catch(error => console.error('Грешка:', error));