1

我刚刚安装了 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 文档说

确保 TEMPLATE_CONTEXT_PROCESSORS 有 django.core.context_processors.request。

它在 Django 1.5 中默认设置。我仍然收到此警告:

“请求”对象必须在上下文中可访问。您必须将“django.contrib.messages.context_processors.request”添加到您的 TEMPLATE_CONTEXT_PROCESSORS 并使用 RequestContext 呈现您的视图。

这是我的代码:https ://c9.io/arthursw/brain

4

1 回答 1

2

根据Django 的 API(另请参见此处django.core.context_processors.request默认情况下未设置:

默认情况下,TEMPLATE_CONTEXT_PROCESSORS 设置为:

("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")

除了这些,RequestContext 总是使用 django.core.context_processors.csrf。

讨论后...

然后,在最后,您只需在设置文件的末尾添加以下行:

TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ( 'django.core.context_processors.request', ) 
于 2013-12-30T14:50:32.823 回答