Действия контроллера, вызываемые дважды --- приложение Php - PullRequest
1 голос
/ 17 августа 2010

Я новичок, поэтому, если мне не хватает какой-то информации или чего-то, пожалуйста, дайте мне знать, и я предоставлю это. Я уже искал информацию об этой ошибке, но пока не нашел ничего актуального. Итак, вот в чем дело ... Некоторые из моих действий контроллеров вызываются дважды, и я только что заметил, что когда мне было интересно, почему я отправлял НЕКОТОРЫЕ письма дважды (в приложение, которое я получил, был включен почтовый клиент) и только тогда, после регистрации того, что я делал, я заметил, что контроллер вызывается дважды ... Кстати, это происходит только тогда, когда я вызывал действие по ссылке вне приложения или набирал URL. Если я не проясняю себя или я что-то упускаю, пожалуйста, оставьте сообщение здесь, чтобы я мог добавить больше информации ..

Заранее спасибо!

Ответы [ 5 ]

7 голосов
/ 19 августа 2010

Агрегирование возможных ответов из других источников согласно моему комментарию:

  1. image and relatives.

    If you have places where you generate the src attribute of the img tag, make sure it isn't empty in any freak cases; a handful of browsers take the empty src as a prompt to load the page again. 1 , 2 , 3

    То же самое относится к пустому значку, javascript или css href - как правило, все, что вы запрашиваете у браузера для извлечения внешнего ресурса, но URL не указывается, даже в css 1 .

    Феномен, возможно, более понятен, если учесть, например, куда вы отправляете данные формы при выполнении (или даже просто ) - а именно на той же странице.

  2. .htaccess махинации.

    Проверьте свои правила перезаписи: Вы заставляете сервер использовать в своем сценарии в обоих направлениях любое статическое содержимое (например, favicon 1 )? Вызывают ли несуществующие файлы вызов вашего скрипта, и является ли ссылка на внешний ресурс, указывающая на него (например, древняя таблица стилей CSS, которая была окончательно удалена из файловой системы, но кто-то забыл удалить ее из источника HTML)?

  3. Отладчики на основе браузера.

    Некоторые браузерные отладчики, например firebug 1 отправит второй запрос на страницу в зависимости от обстоятельств, чтобы собрать данные, которые не были предоставлены им самим браузером. Убедитесь, что вы этого не получаете.

Посмотрите, поможет ли вам кто-нибудь из них.

2 голосов
/ 27 мая 2014

Для меня открытие Firebug заставляло страницу вызываться дважды.

2 голосов
/ 17 августа 2010

Не видя фактического кода приложения, мне остается только догадываться - однако я знаю по крайней мере одну полуизвестную ошибку в этой области, подробности см. http://blog.codekills.net/archives/27-Fun-with-Firefox-Jitters.html - в основном, это происходит, когда <tr> имеет обработчик onclick и внутри <a>, который идет по тому же URL-адресу ... и даже если это не то, что делает ваше приложение, возможно, вы сможете получить некоторое представление о том, как они отлаживали проблему .

0 голосов
/ 24 сентября 2013

Моя конкретная версия проблемы и исправления

  • отправка этой формы работала на производственном сервере, но не "localhost"
  • Для Firefox: форма работала в обоих местах.Для Chrome: работал только на рабочем сервере
  • установка точек останова в моем контроллере проблем подтвердила, что он вызывался несколько раз (duh), и в результате защита CSRF в этой форме была сорвана.

Тогда я нашел эту ветку: http://ellislab.com/forums/viewthread/210318/

Мое решение включало значок.Атрибут src был не совсем правильным.У меня действительно был значок в корневом каталоге, и он загружался на hompage, но не на других (некоторое время не замечал).В любом случае, предоставив абсолютный путь к фавикону, он ее решил

Не знаю, действительно ли у вас ДОЛЖЕН быть фавикон, но, как упоминалось выше, убедитесь, что все ресурсы, которые вы используете (img / js / css), работают правильноссылаться так, чтобы браузер не пытался запросить страницу

0 голосов
/ 10 августа 2013

После нескольких часов отладки моей проблемой был динамически установленный тег css background-image.Если бы изображения не было - background-image: url () - второй запрос был бы отправлен обратно в контроллер после загрузки страницы.

На всякий случай, если кто-то другой делает то же самое.

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