我遇到了“CSRF cookie 未设置”的问题。我所需要的只是外部计费平台将更新发送到 django 服务器。在本地它可以与 Postman 一起使用,但在演示服务器中它不起作用......
Code
# views.py
from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse
@csrf_exempt
def postback(request):
print(request.POST)
return JsonResponse({'ok': 'hoooh!'})
# urls.py
from django.conf.urls import url
from billing import views
urlpatterns = [
url(r'^postback/$', views.postback),
]
Error
Forbidden (CSRF cookie not set.): /billing/postback/
[21/Jul/2016 10:49:21] "POST /billing/postback/ HTTP/1.1" 403 2682
回发到requestb服务器的结果
https://requestb.in/p0rihap0?inspect#t67d6c https://requestb.in/p0rihap0?inspect#t67d6c
Env
- Python 3.5.1+
- Django 1.10rc1
如果您已设置CSRF_COOKIE_SECURE
to be True
在您的设置文件中,则 cookie 将被标记为“安全”,因此需要 HTTPS 连接。
这就是您收到该错误的原因。
了解更多信息here https://docs.djangoproject.com/en/1.9/ref/settings/#csrf-cookie-secure.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)