--- title: Response slug: Web/API/Response tags: - API - Fetch - Fetch API - Interface - Reference - Response translation_of: Web/API/Response ---
{{APIRef("Fetch API")}}

Интерфейс Response из Fetch API представляет собой ответ на запрос.

Вы можете создать новый экземпляр объекта Response используя конструктор {{domxref("Response.Response()")}}, но скорее всего вы столкнётесь с объектом Response, как результат какой-нибудь API операции — например, service worker {{domxref("Fetchevent.respondWith")}}, или {{domxref("WindowOrWorkerGlobalScope.fetch()")}}.

Конструктор

{{domxref("Response.Response","Response()")}}
Создаёт новый экземпляр объекта Response.

Свойства

{{domxref("Response.headers")}} {{readonlyinline}}
Объект {{domxref("Headers")}}, который описывает заголовок ответа.
{{domxref("Response.ok")}} {{readonlyinline}}
Булевское значение, которое указывает, выполнился ли запрос успешно или нет (то есть находится ли код ответа в диапазоне 200299).
{{domxref("Response.redirected")}} {{ReadOnlyInline}}
Указывает, является ли результат запроса перенаправлением.
{{domxref("Response.status")}} {{readonlyinline}}
Код ответа.
{{domxref("Response.statusText")}} {{readonlyinline}}
Строка, соответствующая коду ответа (например, OK для кода 200).
{{domxref("Response.trailers")}}
A {{domxref("Promise")}} resolving to a {{domxref("Headers")}} object, associated with the response with {{domxref("Response.headers")}} for values of the HTTP {{HTTPHeader("Trailer")}} header.
{{domxref("Response.type")}} {{readonlyinline}}
The type of the response (e.g., basic, cors).
{{domxref("Response.url")}} {{readonlyinline}}
The URL of the response.
{{domxref("Response.useFinalURL")}}
A boolean indicating whether this is the final URL of the response.

Body Interface Properties

Response implements {{domxref("Body")}}, so it also has the following properties available to it:

{{domxref("Body.body")}} {{readonlyInline}}
A simple getter exposing a {{domxref("ReadableStream")}} of the body contents.
{{domxref("Body.bodyUsed")}} {{readonlyInline}}
Stores a {{domxref("Boolean")}} that declares whether the body has been used in a response yet.

Методы

{{domxref("Response.clone()")}}
Creates a clone of a Response object.
{{domxref("Response.error()")}}
Returns a new Response object associated with a network error.
{{domxref("Response.redirect()")}}
Creates a new response with a different URL.

Body Interface Methods

Response implements {{domxref("Body")}}, so it also has the following methods available to it:

{{domxref("Body.arrayBuffer()")}}
Takes a {{domxref("Response")}} stream and reads it to completion. It returns a promise that resolves with an {{domxref("ArrayBuffer")}}.
{{domxref("Body.blob()")}}
Takes a {{domxref("Response")}} stream and reads it to completion. It returns a promise that resolves with a {{domxref("Blob")}}.
{{domxref("Body.formData()")}}
Takes a {{domxref("Response")}} stream and reads it to completion. It returns a promise that resolves with a {{domxref("FormData")}} object.
{{domxref("Body.json()")}}
Takes a {{domxref("Response")}} stream and reads it to completion. It returns a promise that resolves with the result of parsing the body text as {{jsxref("JSON")}}, which is a JavaScript value of datatype object, string, etc.
{{domxref("Body.text()")}}
Takes a {{domxref("Response")}} stream and reads it to completion. It returns a promise that resolves with a {{domxref("USVString")}} (text).

Примеры

Fetching an image

In our basic fetch example (run example live) we use a simple fetch() call to grab an image and display it in an {{htmlelement("img")}} element. The fetch() call returns a promise, which resolves to the Response object associated with the resource fetch operation.

You'll notice that since we are requesting an image, we need to run {{domxref("Body.blob")}} ({{domxref("Response")}} implements Body) to give the response its correct MIME type.

const image = document.querySelector('.my-image');
fetch('flowers.jpg').then(function(response) {
  return response.blob();
}).then(function(blob) {
  const objectURL = URL.createObjectURL(blob);
  image.src = objectURL;
});

You can also use the {{domxref("Response.Response()")}} constructor to create your own custom Response object:

const response = new Response();

Ajax запрос

Здесь мы с помощью функции doAjax вызываем PHP скрипт, который генерирует JSON строку, и возвращает распарсенный JSON в виде JavaScript объекта. Также реализована простая обработка ошибок.

// Функция, которая делает Ajax запрос
const doAjax = async () => {
    const response = await fetch('Ajax.php'); // Генерируем объект Response
    if (response.ok) {
        const jVal = await response.json(); // Парсим тело ответа
        return Promise.resolve(jVal);
        }
    else
        return Promise.reject('*** PHP file not found');
    }
}

// Вызываем doAjax и выводим результат в консоль
doAjax().then(console.log).catch(console.log);

Specifications

Specification Status Comment
{{SpecName('Fetch','#response-class','Response')}} {{Spec2('Fetch')}} Initial definition

Browser compatibility

{{Compat("api.Response")}}

See also