Symfony, вызов jQuery.ajax (), переменные сеанса потеряны - PullRequest
5 голосов
/ 29 августа 2011

Я пишу веб-приложение, используя Symfony 1.3.У меня проблема с тем, что мои переменные сеанса теряются после вызова действия через вызов jQuery $.ajax().Вещи происходят в следующем порядке:

  1. Действие устанавливает переменную сеанса следующим образом:

    $this->getUser()->setAttribute('uploaded-files', $uploadedFiles);
    
  2. Затем, когда действие вызывает компонент представленияПолученная HTML-страница содержит следующий вызов:

    $.ajax({
      type: "POST",
      url: '<?php echo url_for("content/merge"); ?>',
      cache: false,
      success: mergingCompleteCallback
    });
    
  3. Я нажимаю на кнопку, которая запускает вышеуказанный вызов ajax.Вызов выполняет соответствующий метод действия, но когда я распечатываю содержимое переменной сеанса 'uploaded-files', она пуста.

    Я также проверил, остается ли идентификатор сессии одинаковым между вызовом страницы, которая устанавливает переменную, и страницей, которая читает переменную (вызов ajax), и идентификатор сессии не изменился.Я искал часы в Интернете, и я не смог найти решение.

Ответы [ 2 ]

3 голосов
/ 17 августа 2012

У меня была похожая проблема, и проблема заключалась в том, что я использовал значение хоста для хранения файлов cookie с 'www', т.е. www.mydomain.com, и я делал запрос Ajax без ' www '

Решение - использовать подстановочный знак как хост. Например, .mydomain.com в качестве хоста для хранения файлов cookie сеанса в конце браузера.

Просто убедитесь, что вы не жертва этого?

1 голос
/ 14 августа 2012

Вы также можете добавить значения сеанса к самому вызову, так что вам не нужно получать его в вызове AJAX.Это немного странно, но это сработает.

Видите ли вы переменную сеанса в панели разработчиков?Возможно, это кеширование, у меня раньше была такая проблема с кешированием.

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