Что такое хорошая практика для перенаправления запроса xhr или fetch на новую страницу? - PullRequest
0 голосов
/ 27 марта 2019

Интересно, есть ли какие-либо стандартные / лучшие практики, как обрабатывать следующий сценарий:

Браузер выполняет xhr запроса на выборку, и в ответе должно быть указано, что браузер должен перейти в новое местоположение.

В качестве примера можно привести то, что пользователи отправляют сообщение чата, браузеры отправляют запрос на выборку, а ответ заключается в том, что пользователь не вошел в систему и браузер должен перейти на страницу входа.

Теперь вы можете просто получить ответ 3xx, и с помощью fetch это можно обработать так:

const response = await fetch(request);

if (response.redirected) {
  window.location.href = response.url;
}

Однако это приведет к загрузке перенаправленной страницы 2 раза. Что очень уродливо и даже хуже, если перенаправленная страница является внешней страницей, которую она выдаст.

1 Ответ

3 голосов
/ 27 марта 2019

Это обычно не то, что вы должны ожидать от своего клиента.Вместо этого ваш сервер не должен перенаправлять запросы JSON на страницы HTML.

На вашем сервере, если запрос запрашивает JSON, вы должны ответить 401 Unauthorized и документом JSON, содержащим информацию об ошибке.

Тот же запрос HTML должен перенаправлять на страницу входа в систему.

Большинство серверных сред имеют способ определения формата запрашиваемого запроса и выдачи правильного типа ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...