2013-12-30 6 views
1

Я только что установил Dajaxice, но я держу имея эту ошибку:Почему я получаю ошибку «403 (Запретный)» с Dajaxice?

POST https://.../communication.isUserLogged/ 403 (Forbidden) dajaxice.core.js:163 
Dajaxice: Something went wrong. 

на стороне сервера:

"POST /dajaxice/communication.isUserLogged/ HTTP/1.1" 403 2282 

Я предполагаю, что сервер не получает правильный маркер CSRF, но я не знаете, как исправить эту проблему.

Dajaxice документация говорит

Ensure that TEMPLATE_CONTEXT_PROCESSORS has django.core.context_processors.request.

но it is set by default in Django 1.5. я все еще получаю это предупреждение:

The 'request' object must be accesible within the context. You must add 'django.contrib.messages.context_processors.request' to your TEMPLATE_CONTEXT_PROCESSORS and render your views using a RequestContext.

Вот мой код: https://c9.io/arthursw/brain

+0

Я не могу получить доступ к код, но он, кажется, вы используете 'context' вместо 'RequestContext' (https://docs.djangoproject.com/en/1.6/ref/templates/api/#subclassing-context-requestcontext) в ваших представлениях. – furins

+0

Вот мой файл view.py: 'def index (request): \t return render (request, 'index.html')'. Это действительно? –

+0

да, есть. По умолчанию шаблон будет отображаться с экземпляром RequestContext. – furins

ответ

2

согласно Django's API (смотри также here) django.core.context_processors.request не установлен по умолчанию:

By default, TEMPLATE_CONTEXT_PROCESSORS is set to:

("django.contrib.auth.context_processors.auth", 
"django.core.context_processors.debug", 
"django.core.context_processors.i18n", 
"django.core.context_processors.media", 
"django.core.context_processors.static", 
"django.core.context_processors.tz", 
"django.contrib.messages.context_processors.messages") 

In addition to these, RequestContext always uses django.core.context_processors.csrf.

ПОСЛЕ ОБСУЖДЕНИЯ ...

затем, в самом конце, вы должны просто добавить следующую строку в конце файла настроек:

TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ('django.core.context_processors.request',) 
+0

Я добавил 'TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ( \t 'django.contrib.messages.context_processors.request', )' в settings.py, и теперь я получаю: 'ImproperlyConfigured в/ модуле«django.contrib.messages .context_processors "не определяет" запрашиваемый "обработчик запрошенных запросов. –

+0

Вы уверены, что используете Django 1.5.x? – furins

+0

да: '>>> импорт Джанго >>> django.VERSION (1, 5, 0, 'окончательный', 0)' –

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