Android 如何在Django 1.7中禁用CSRF?
我正在努力找到一种方法来禁用CSRF的登录视图,我正试图实现。使用Django 1.7的最佳方式是什么?我正在开发一个Android应用程序,它连接到/login url并发送用户名和密码,我已经为下面的视图提供了代码。我尝试在视图和url(在url.py中)上使用@csrf_-emption,但它不起作用。我得到的错误是“CSRF验证失败。请求中止” 我还尝试删除中间件(django.middleware.csrf.CsrfViewMiddleware),但它也不起作用 这是登录视图的代码:Android 如何在Django 1.7中禁用CSRF?,android,python,django,django-views,django-csrf,Android,Python,Django,Django Views,Django Csrf,我正在努力找到一种方法来禁用CSRF的登录视图,我正试图实现。使用Django 1.7的最佳方式是什么?我正在开发一个Android应用程序,它连接到/login url并发送用户名和密码,我已经为下面的视图提供了代码。我尝试在视图和url(在url.py中)上使用@csrf_-emption,但它不起作用。我得到的错误是“CSRF验证失败。请求中止” 我还尝试删除中间件(django.middleware.csrf.CsrfViewMiddleware),但它也不起作用 这是登录视图的代码:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def login(request):
fb_user_id = request.POST.get('username','')
name = request.POST.get('name','')
request.session['fb_user_id'] = fb_user_id
create_user(fb_user_id, name)
res = {}
res["success"] = "yes"
return HttpResponse(json.dumps(res))
此外,这是url.py中的url:
url(r"^login/$", csrf_exempt(views.login), name='login'),
这是我得到的回应:
正如我以前告诉过你的那样,你就是这样做的。如果您认为这不起作用,您可能应该发布完整的错误消息。嗨,Daniel,我得到了一个完整的HTML页面,它以CSRF验证失败开始,并告诉我如何正确使用CSRF,但问题是我不想使用它。这在我看来是正确的,所以我怀疑其他地方出了问题。顺便说一下,我怀疑您需要在该视图上使用
确保\u csrf\u cookie()
,以便后续调用正常工作。Kevin,但是如果我试图禁用它,为什么我要确保cookie?既然您已禁用它,您就不应该获得该页面。这告诉我,要么你把装饰器放在了错误的视图上,要么服务器没有接收到更改,要么发生了一些完全奇怪的事情;但是由于你拒绝发布实际的错误消息,我猜不出是什么。