Django:禁止(未设置CSRF cookie。)

标签 django post csrf

我遇到“未设置CSRF Coo​​kie”的问题。我需要的是外部计费平台将更新发送到django服务器。它在本地与Postman一起使用,但是在演示服务器中它不起作用...

代码

# 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),
]

错误
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

环保
  • Python 3.5.1+
  • Django 1.10rc1
  • 最佳答案

    如果您在设置文件中将CSRF_COOKIE_SECURE设置为True,则cookie将被标记为“安全”,因此需要HTTPS连接。

    这就是为什么您会收到该错误的原因。

    有关更多信息,请here

    关于Django:禁止(未设置CSRF cookie。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529424/

    相关文章:

    django - 什么时候使用 fabric 或 ansible?

    Android 在没有弃用方法的情况下向服务器发送 https post 请求

    django - POST 方法总是返回 403 Forbidden

    ruby-on-rails - 使用 Rails 生成错误的 CSRF token

    php - CSRF token 在本地主机上始终无效 - Symfony 4 表单

    django - 如何防止在Django中多次登录

    与管理器相关的 Django 重复查询

    python - Django 未创建表 "Table django_session does not exist"

    php - 将数组从 html 发布到 php

    javascript - 如何(ajax)发布和执行响应?