2010-04-26 3 views
4

У меня есть вид АЯКС, где я хочу, чтобы установить переменную сеанса, как например:Джанго - Empty данные сессии в AJAX-запросы

def upload(request, *args, **kwargs): 
    request.session['test'] = 'test' 
    request.session.modified = True 
    print request.session.items() 

У меня есть еще один нормальный вид что-то вроде этого:

def advertise(request): 
    print request.session.items() 

Я получаю эти два dicts напечатанные на оболочке:

[('test', 'test')] 
[('_auth_user_backend', 'django.contrib.auth.backends.ModelBackend'), ('_auth_user_id', 26L)] 

Почему данные сеанса, которые я поставил в представлении АЯКС не переходя к моему регулярные просмотры? Если я устанавливаю данные сеанса в обычном режиме, все работает отлично, но кажется, что запросы ajax содержат пустые данные сеанса? Кто-нибудь раньше занимался чем-то подобным? Любые предложения приветствуются. Благодарю.

+0

Просто небольшое предложение. Попробуйте использовать панель инструментов Django Debug и посмотрите, можете ли вы найти какие-либо подсказки относительно того, где проблема. Вы можете скачать его здесь: http://github.com/robhudson/django-debug-toolbar. Надеюсь, что это поможет тебе. – Jens

+1

Вы отправляете один и тот же идентификатор сеанса на сервер (через файл cookie)? – Almad

ответ

5

У меня была такая же проблема сегодня. Хотя я не думаю, что OP все еще ждет ответа через 3 месяца :-), это может помочь другим.

Я посылал Ajax запросы, как это ...

 
$.ajax({url: ' http://localhost:8000/testgame/getTime/ ', 
     async: false, dataType: 'text', 
     success: function(text) { 
      time = new Date(text); 
     }, error: function(http, message, exc) { 
      time = new Date(); 
    }}); 

... и доступ к приложению в Firefox, как это:

 
http://127.0.0.1:8000/game/config/ 

И проблема в том, что локальный и 127.0.0.1 являются не то же самое в этом случае!

+0

Спасибо! Я столкнулся с той же проблемой, и это сводило меня с ума. :) – mjjohnson

+0

Вау, не могу поверить, что потратил часы на разницу между localhost и 127.0.0.1 .... они должны быть одинаковыми> _ < –

Смежные вопросы