Статус 204 показывает response.ok - PullRequest
0 голосов
/ 21 мая 2018

В моем бэкэнде ASP.NET Core API я отправляю Status 204, когда нет данных, но заметил, что во внешнем интерфейсе мой вызов fetch все еще показывает response.ok.

Два вопроса:

  1. Это нормальное поведение?Я думаю, это был успешный вызов, поэтому ответ мог быть в порядке, но он просто отбросил меня.
  2. Какой лучший способ проверить Status 204?

Мой текущий кодв моем приложении React/Redux выглядит так:

export const apiCall = () => {
   return (dispatch) => fetch("/api/get", fetchOptions)
      .then((response) => {
         if(response.ok) {
            // Do something
         } else {
            // Couldn't get data!
         }
      })
};

Это мой стандартный блок кода при обработке вызовов fetch.Как мне изменить его для обработки Status 204 сценариев?

1 Ответ

0 голосов
/ 21 мая 2018

Помимо проверки Response.ok, вы также можете проверить Response.status.По MDN :

Свойство статуса «только для чтения» интерфейса «Ответ» содержит код состояния ответа (например, 200 для успеха).

Response.ok - это только проверка, чтобы узнать, является ли свойство status 200-299.

Таким образом, вместо проверки ok, вы можете сделать:

if (response.status === 200) {
  // Do something
} else if (response.status === 204) {
  // No data!
} else {
  // Other problem!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...