Ответ 1
Что произойдет, если браузер получит ответ перенаправления на запрос ajax?
Если сервер отправляет перенаправление (например, ответ 302 плюс заголовок Location:), перенаправление автоматически сопровождается браузером. Ответ на второй запрос (при условии, что он также не является другим перенаправлением) - это то, что доступно вашей программе.
Фактически, у вас нет возможности определить, произошел ли ответ 302. Если перенаправление 302 приводит к 200, то ваша программа действует одинаково, как если бы исходный запрос приводил непосредственно к 200.
Это был и мой опыт, и поведение fetch() API 'd предложить более тонкое управление обработкой переадресаций, с поведением по умолчанию, аналогичным XHR. Тем не менее, он работает только там, где fetch() реализуется изначально. Polyfill версии fetch(), которые основаны на XHR- continue для ограничения XHR. К счастью, поддержка родного браузера, кажется, хорошо округляется.