Driver86
@Driver86
Немодератор toster.ru

Зачем Google Chrome Android делает два редиректа вместо одного при POST-запросе?

<?php
if (!empty($_POST['text'])) {
    header('Location: /test.php');
    setcookie('testCookie', '1', time() + 3600, '/');
    exit();
}
setcookie('testCookie', '0', time() + 3600, '/');
?><form action="" method="post">
    <input name="text" type="text" value="text">
    <button type="submit">submit</button>
</form>
testCookie: <?= $_COOKIE['testCookie'] ?? 'null'  ?>


Логика кода: отправляем форму, браузеру передаём куку, страница обновляется (через редирект) и отображается содержимое куки ("testCookie: 1").
Но поведение в Google Chrome Android иначе. Вместо "testCookie: 1", отображается "testCookie: 0".
Причина: судя по логам, этот браузер обращается к странице больше двух раз: сначала отправляя форму, затем получая редирект и ещё третий раз к этой же странице (следуя редиректу). Хотя консоль Google Chrome Android показывает, что только два запроса.
В режиме инкогнито такой "фичи" нет и всё как надо. Так же, если редирект на другую страницу, например /test.php?123456789 - тоже всё норм.
Что это?
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
Driver86
@Driver86 Автор вопроса
Немодератор toster.ru
Вобщем, как оказалось, Максим Федоров прав: это - кеш какой-то.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы