Android 为什么我的django开发服务器一直用403响应,我如何允许POST?

Android 为什么我的django开发服务器一直用403响应,我如何允许POST?,android,django,post,Android,Django,Post,所以我有一个django开发服务器,我想作为我的android应用程序的后端。目前,我只是在本地机器上运行开发服务器 我已经能够成功地从服务器检索数据,但我现在正试图通过JSON对象将数据发布到服务器,但是我不断收到错误代码403的响应。我的views.py文件中的方法甚至没有被调用,它只是自动响应403。以下是终端中的服务器响应 [28/Nov/2011 17:58:40] "POST /createUser/ HTTP/1.1" 403 2326 这是my urls.py中的url u

所以我有一个django开发服务器,我想作为我的android应用程序的后端。目前,我只是在本地机器上运行开发服务器

我已经能够成功地从服务器检索数据,但我现在正试图通过JSON对象将数据发布到服务器,但是我不断收到错误代码403的响应。我的
views.py
文件中的方法甚至没有被调用,它只是自动响应403。以下是终端中的服务器响应

 [28/Nov/2011 17:58:40] "POST /createUser/ HTTP/1.1" 403 2326
这是my urls.py中的url

 url(r'^createUser/$', 'mydb.views.createUser'),
但我总是犯403错误,有人知道为什么吗

可能也很重要:

当我从
INSTALLED_APPS
中删除
django.contrib.auth
django.contrib.contenttypes
时,我从终端中的服务器获得了不同的打印输出:(改为错误代码500)


因此,我认为存在某种权限问题。

要快速解决此问题,请尝试向视图中添加@csrf\u豁免装饰器:

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def createUser(request):

也就是说,对于后端API,一定要仔细阅读CSRF

我阅读了以下关于CSRF令牌的链接:docs.djangoproject.com/en/dev/ref/contrib/CSRF


然后我关闭了中间件,因为我目前只在本地主机上。

您有CSRF令牌吗?打开调试并尝试在浏览器中正常加载视图(即访问URL)嗯,它实际上进入方法。服务器将此打印到终端:
[28/Nov/2011 18:34:56]“GET/createUser/HTTP/1.1”200 8
我甚至不知道CSRF令牌是什么,所以我不这么认为,我会阅读该链接。它们是必需的吗?我真的很想在开发应用程序时公开一切,然后再担心服务器端。如果我不想豁免csrf怎么办。
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def createUser(request):