【发布时间】:2013-07-06 12:48:57
【问题描述】:
我开始使用基于 django 的简单的启用 ajax 的网络应用程序。
我能够启动主页。当我尝试点击另一个网址时,从主页出现 403 错误
我的索引页是http://mydomain.com/SampleApp - 这很好用
我的 Ajax 网址是 http://mydomain.com/SampleApp/ajax - 这会产生 403 错误
请用正确的 localhost:8000 替换上述 url 中的 'mydomain.com',因为它受到限制。
显示的错误是
CSRF 验证失败。请求中止。 失败原因: 未设置 CSRF cookie。
我想我在 settings.py 中遗漏了一些重要的设置
添加源代码
网址配置
url(r'^SampleApp/', include('views.urls'))
views.url.py
urlpatterns = patterns('',
url(r'^ajax/$', views.ajax),
url(r'^$', views.index)
)
views.views.py
def index(request):
print('Rendering Index')
return render(request, 'index.html')
def ajax(request):
print('rendering ajax')
return render(request, 'ajax.html');
为简洁起见,我已经排除了导入
【问题讨论】:
-
你有一些 .htaccess 文件吗? PD:它给了我一个 404 错误 no 403
-
没有 HtAccess 文件。我收到 Forbidden (403) 错误作为格式正确的 html。
-
在您使用表单的每个视图中添加 context_instance=RequestContext(request)。让我猜你使用 render_to_response
-
您是否在 ajax 请求中发送 csrf 令牌? django 文档提供了有关如何执行此操作的 javascript 代码示例
-
@catherine 我已经添加了源代码sn-p
标签: python django http-status-code-403