Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
Метод fetch – это XMLHttpRequest нового поколения. Он предоставляет улучшенный интерфейс для осуществления запросов к серверу: как по части возможностей и контроля над происходящим, так и по синтаксису, так как построен на промисах. Поддержка в браузерах пока не очень распространена, но есть полифилл и не один.
fetch('/card/remove/'+id,{//Ajax запрос замена XMLHttpRequest() method: 'delete'//delete - запрос }).then(card ⇒ {//Возвращает промис console.log(card); });
Синтаксис метода fetch:
let promise = fetch(url[, options]);
Как видно, всевозможных настроек здесь больше, чем в XMLHttpRequest. Вместе с тем, надо понимать, что если мы используем полифилл, то ничего более гибкого, чем оригинальный XMLHttpRequest мы из этого не получим. Разве что, fetch, возможно, будет удобнее пользоваться. При вызове fetch возвращает промис, который, когда получен ответ, выполняет коллбэки с объектом Response или с ошибкой, если запрос не удался.
'use strict';
fetch('/article/fetch/user.json') .then(function(response) {
alert(response.headers.get('Content-Type')); // application/json; charset=utf-8
alert(response.status); // 200
return response.json();
})
.then(function(user) {
alert(user.name); // iliakan
})
.catch( alert );
Объект response кроме доступа к заголовкам headers, статусу status и некоторым другим полям ответа, даёт возможность прочитать его тело, в желаемом формате.
Варианты описаны в спецификации Body, они включают в себя:
Соответствующий вызов возвращает промис, который, когда ответ будет получен, вызовет коллбэк с результатом. В примере выше мы можем в первом .then проанализировать ответ и, если он нас устроит – вернуть промис с нужным форматом. Следующий .then уже будет содержать полный ответ сервера. Больше примеров вы можете найти в описании полифилла для fetch.