Обработка получения ответа - JS - PullRequest
0 голосов
/ 26 января 2019

У меня есть ответ после GET-запроса с fetch. Я знаю, что этот ответ вернет массив. Когда я обрабатываю его с .json() - все нормально. Но когда я пытаюсь обработать тот же ответ с .formData() - это не удается. Вот код:

fetch(fullPath)
    .then(response => response.json())
    .then((allData) => {
      console.log(allData);
    })
    .catch((e) => console.log(e));

тот же с response.formData() не работает. Поэтому возникает вопрос - почему мы не можем обработать обещание сначала «потом» с .formData(), если выключено. Док говорит , что formData() также является приемлемым методом для извлечения тела из ответа?

1 Ответ

0 голосов
/ 27 января 2019

Метод formData() вернет ошибку, если ответ не имеет типа multipart / form-data.Он должен иметь key=value записей.См. этот вопрос , где кто-то спрашивает о разработке ответа с этим форматом.

Нечто подобное происходит, если вы вызываете метод json() для ответа, который не является допустимым JSON: это также вызываетисключение.

Поскольку multipart/form-data редко используется в качестве типа содержимого ответа, метод formData() также не часто используется.Документация по MDN упоминает, что она имеет некоторое применение для работников сферы обслуживания:

Примечание : Этот [метод] в основном относится к работникам сферы обслуживания.Если пользователь отправляет форму, а работник службы перехватывает запрос, вы можете, например, вызвать formData(), чтобы получить карту ключ-значение, изменить некоторые поля, а затем отправить форму на сервер (или использовать ее локально).

...