@DiamondEvil

Почему срабатывает именно этот редирект?

Интересное наблюдение. Есть страница редиректа у которой в ЗАГОЛОВКЕ передается(что вообще приоритетнее всего контента козалось-бы):
Refresh: 0;url=https://site.ru //Редирект 1

А сама страница еще имеет 6 видов редиректов и имет вид:
<html>
  <head>
      <meta http-equiv="refresh" content="0;URL=https://site.ru">  //Редирект 2
  </head>
<body>
      <script type="text/javascript">
            location="https://site.ru";  //Редирект 3
            document.location.href="https://site.ru";  //Редирект 4
            location.replace("https://site.ru");  //Редирект 5
            window.location.reload("https://site.ru");  //Редирект 6
            document.location.replace("https://site.ru");  //Редирект 7
      </script>
</body>
</html>


То-есть пытаюсь сделать 7 разных видов редиректов. И самое интересное что срабатывает Редирект 7.

Внимание вопрос. Почему?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
мета всегда была на случай отключенного JS ,
почему - неибу но очевидно что DOM полноценно должен быть отрисован - а это JS , а уже потом смотреть на директивы

а уже что там в JS коде устаревшего или работающего не везде - сам разбирайся

убери например 7й и увидишь что сработал какой-то из JS
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Я бы понял, если бы все редиректы были уникальными. Тогда по логам HTTP сервера можно было-бы их различить. А так... А почему после залива в бензобак 40 литров машина сжигает именно последний литр? Не предпоследний, и не первый, например?!
Ответ написан
Krasnodar_etc
@Krasnodar_etc
avito front
Про редирект через refresh - это асинхронные методы редиректа, они остаются таковыми даже с задержкой 0. Если очень упрощать - асинхронный код выполнится после синхронного. Подробнее читайте про JS Event Loop в браузере

Редиректы - 3-7:
Это синхронный код, в котором фактически каждая строка меняет значение одной и той же переменной. Отрабатывает он моментально, значит итоговое значение window.document.location.href = тому, которое было записано последним
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы