【发布时间】:2014-03-11 16:21:31
【问题描述】:
我收到 405 错误,特别是 CSRF verification failed. Request aborted. CSRF cookie not set.
我的urls.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'),
)
而我的views.py 是:
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 是什么,但是当没有 cookie 时,通过终端的 POST 方法会标记什么,对吗?有什么办法可以解决这个问题?
【问题讨论】: