#редирект #php #javascript
Версия Google Chrome - 25.0.1364.172 m Принцип работы такой: Пользователь посещает страницу (скрипт №1) Он выполняется После этого отправляется заголовок (редирект на скрипт №2) Скрипт №2 принимает эстафету Выполняется Возвращает эстафету скрипту №1 и скрипт №1 показывает результат Проблема в защите браузера. Если я делаю заголовками, возникает ошибка 310. А если пытаюсь закончить работу скрипта №2 выводом в браузер редиректирующего javascript кода или мета-тега refresh, браузер просто зацикливается обновляя страницу (скрипт №2), даже если указано, что переадресовывать нужно на другой поддомен, не говоря уже о другой директории этого же домена. Переадресовывает только если домен назначения совсем другой. У кого-нибудь есть мысли в чём может быть причина такого странного поведения браузера? И что делать? Нужно чтобы такой принцип эстафеты работал во всех браузерах. UPD Зачем тут код, если вопрос не про код? Ну да ладно. Код примерно такой: script1.php script2.php Только весь смысл в том, что в первом скрипте сначала идёт условие, и если оно не выполняется, то тогда идёт обращение ко второму скрипту, который заносит в базу данных необходимые данные и когда второй скрипт доделывает свои дела, должен повторяться запрос к первому скрипту, в котором условие уже будет выполняться (благодаря проделанной работе второго скрипта) и соответственно первый скрипт уже не будет обращаться ко второму скрипту и будет производить совсем другие действия не связанные с редиректами. UPD2 script1.php script2.php Простой пример с сессионной переменной. Ну уж теперь-то все поняли логику? :))) Я понимаю, что можно всё в одном скрипте сделать и это будет прекрасно работать, но мне интересно, можно ли как-нибудь распределить обязанности на разные скрипты, чтобы они работали по принципу передачи эстефетной палочки, ну или как бы играли в "сифу" до определённого момента. :) Я не знаю уже как мальчикам объяснить то, чего я хочу добиться от Google ChromА. :))))) UPD 3 То что я привела в пример - я не тестировала и это работает да, но почему-то, когда работают два настоящих больших скрипта, происходят глюки или ошибки описанные выше и причём только в Google Chrome, хотя в скриптах нет ничего особенного и в общем смысле они логически сложены так же как мой пример с сессиями, только скрипты работают с базой данных и не передают друг другу ничего, а просто первый говорит второму - "у меня нет данных, поработай-ка и ты". Код прикладывать не буду, потому что мне совесть не позволит просить кого-нибудь в нём разобраться. :))) Простите за "охоту за приведениями". :) Всем большое спасибо, особенно @eicto и моему другу @ReinRaus. :)))
Ответы
Ответ 1
Используйте Ajax для этого: сделайте логику запроса нужных скриптов на клиенте и проблема отпадет сама собой, т.к. редирект будет не нужен. Использовать редиректы "туда-обратно" - антипаттерн, который явно фильтруется браузерами.
Комментариев нет:
Отправить комментарий