Python Django返回403错误--”;未设置CSRF cookie“;

Python Django返回403错误--”;未设置CSRF cookie“;,python,html,django,post,Python,Html,Django,Post,我得到一个405错误,特别是说CSRF验证失败。请求被中止。未设置CSRF cookie。 我的url.py是: from django.conf.urls import patterns, include, url from django.contrib import admin from users.views import HandlerView admin.autodiscover() urlpatterns = patterns('', url(r'^admin/', inc

我得到一个405错误,特别是说
CSRF验证失败。请求被中止。未设置CSRF cookie。

我的
url.py
是:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from users.views import HandlerView
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^users/login$', HandlerView.as_view(), name='my-view'),
    url(r'^users/add$', HandlerView.as_view(), name='my-view'),
)
from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic import View

class HandlerView(View):
    def get(self, request, *args, **kwargs):
        return HttpResponse('Hello, World!')

    def post(self, request, *args, **kwargs):
        print "Hello world!"
        return HttpResponse('Hello, World!')
我的
views.py
是:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from users.views import HandlerView
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^users/login$', HandlerView.as_view(), name='my-view'),
    url(r'^users/add$', HandlerView.as_view(), name='my-view'),
)
from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic import View

class HandlerView(View):
    def get(self, request, *args, **kwargs):
        return HttpResponse('Hello, World!')

    def post(self, request, *args, **kwargs):
        print "Hello world!"
        return HttpResponse('Hello, World!')
我在终端输入的curl执行是:

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"user" : "jeff", "password" : "pass1"} ' http://localhost:8000/users/add
运行我的服务器的终端返回:

[13/Feb/2014 00:38:06] "POST /users/add HTTP/1.1" 403 2282

我知道CSRF是什么,但是当没有cookies时,通过终端的POST方法的标记是什么?对此有什么补救办法?

它可能会出现此错误,因为您可能在middelware设置中打开了CSRF保护

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse

@csrf_exempt
def my_view(request):
    return HttpResponse('Hello world')
如果不需要这种保护,可以将视图设置为。 您可以简单地在视图上使用装饰器,也可以将其从中间件设置中禁用

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse

@csrf_exempt
def my_view(request):
    return HttpResponse('Hello world')