Не удается получить текущего пользователя для запросов AJAX в App Engine - PullRequest
0 голосов
/ 07 августа 2009

Я использую Django + Appengine на странице, которая имеет как обычный HTML-запрос для получения страницы, так и AJAX-запрос с использованием jQuery. По обычным запросам, он прекрасно загружает информацию о текущем пользователе и сессии. Однако для запросов AJAX self.user не установлен, а users.get_current_user () ничего не возвращает.

Оба обработчика находятся в одном домене и даже в одном и том же файле .py. Используя WING IDE для отладки, единственное различие между ними заключается в том, что в обычном запросе webob._parsed_cookies задается идентификатор сеанса, а в запросе AJAX он вообще не устанавливается. Хотя оба они показывают один и тот же идентификатор сеанса в request._environ.HTTP_COOKIE.

Это заставляет меня задуматься о том, что запрос AJAX, а не запрос HTML, не дает GAE знать о загрузке информации о сеансе. Идеи?

Редактировать: Извините, это была моя вина. Я не осознавал, что использую пользовательскую реализацию пользователей, чтобы сделать ее более похожей на django, а не на пользователей Google, - и я пропустил шаг, который включал ручное извлечение идентификатора сеанса из файлов cookie и поиск активного пользователя, соответствующего этот идентификатор сеанса и установка его в качестве переменной экземпляра пользователя для запроса. Вот почему идентификатор сеанса был в запросе, но пользовательский объект не был установлен.

  1. Элемент списка

1 Ответ

0 голосов
/ 07 августа 2009

Вам, конечно, нужно установить идентификатор сессии в куки, потому что именно так django определяет, какой пользователь вошел в систему. Вы должны опубликовать часть своего кода jquery и соответствующего представления, чтобы попытаться угадать, что происходит не так.

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