Неверная форма ПУБЛИКУЕТ данные в форме входа AJAX


Я работаю на веб-сайте drupal 7, используя форму входа AJAX. У меня проблема, форма работает нормально один раз, а затем не работает, когда я выхожу из системы и повторяю попытку. Мне нужно очистить кэш и попробовать еще раз, чтобы он снова заработал. Я думаю, что это связано с тем, что form_id не найден в кэше, но я не знаю, как это исправить.

Есть какое-нибудь решение?

Спасибо

Author: Mika A., 2012-07-12

1 answers

Коротко: это должно сработать, если вы отключите "кэширование страниц для анонимных пользователей"

Длинный: Когда включена основная функция кэширования Drupal, формы доставляются анонимным посетителям из кэша, что приводит к ситуации, когда одна и та же форма доставляется более одного раза с одним и тем же идентификатором form_build_id.

Как только один из анонимных пользователей отправляет такую форму, запись удаляется из кэша.

Следующий посетитель, отправляющий одна и та же форма потенциально может столкнуться с проблемами из-за отсутствия записи формы в кэше.

Обычный FAPI Drupal, похоже, с этим согласен, но если форма отправляется через Ajax, отправка отклоняется, выдается запись сторожевого пса ("Недопустимые данные отправки формы") и вызывается drupal_exit().

В результате этого пользователю придется перезагрузить страницу, прежде чем он сможет отправить форму. Это может раздражать, т. Е. Если используемая форма является формой входа пользователя. Кажется, что просто ничего не происходит.

Эта проблема возникает всегда, когда кэширование страниц для анонимных пользователей и отправка форм с помощью собственного механизма ajax Drupal используются в сочетании.

Источник: http://drupal.org/node/1694574

 10
Author: Reszli, 2012-09-28 05:53:22