我正在尝试在 Django 中创建 Web 服务。由于某种原因,它在 GET 请求中工作,但不是作为 POST(这是我的要求)。我有以下网址:
url(r'^rest/user/(.*)/(.*)/$', 'rest.views.user.user')
因此,如果用户要向 发送消息/rest/user/ANY_CHARACTER/ANY_CHARACTER/
,它将转到以下函数:
def user(request, string1, string2):
if request.method == "POST":
return HttpResponse(string1 + ' ' + string2)
else:
return HttpResponse('error')
每次我发送 GET 请求时,我都会收到error
(这是正确的),但每次我发送与 POST 相同的 URL 时,我都会收到 HTTP 500 错误。我在这里缺少什么吗?
编辑
终端中的错误日志有以下内容:
[02/Jul/2012 19:13:57] "POST /rest/user/hi/hi HTTP/1.1" 500 61994
但是,当我发送与 GET 相同的命令时,我没有收到任何错误……这很奇怪。
编辑 1
当我发送 POST 请求时,我注意到以下错误,它适用于所有其他类型:
<p>Reason given for failure:</p>
<pre>
CSRF token missing or incorrect.
</pre>
<p>In general, this can occur when there is a genuine Cross Site Request Forgery, or when
<a href='http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ref-contrib-csrf'>Django's
CSRF mechanism</a> has not been used correctly. For POST forms, you need to
ensure:</p>
我的问题是......我如何处理这个 web 服务请求?抱歉,尝试搜索此内容,但有没有办法绕过 CSRF 处理 RESTful Web 服务请求?