Django Forbidden(未设置CSRF cookie。)

dns*_*sko 0 django

我想知道CSRF Cookie not setDjango 一直向我抛出的错误是怎么回事。我创建了一个视图(见下文),它是付款回调。我对发送到该视图的内容没有影响。我已经检查了 StackOverflow 上的其他帖子,但我认为任何帖子都不适用于我。他们中的大多数人可以在他们的表单中实现 csrf 保护,csrf_exempt 他们的视图,或者他们使用 rest_framework。

class PaymentWebhook(View):

    def post(self, request, *args, **kwargs):
        # ...
Run Code Online (Sandbox Code Playgroud)

现在,每当我对这个函数什么都不做时,我都会收到这个错误:

Forbidden (CSRF cookie not set.): /payment/webhook
Run Code Online (Sandbox Code Playgroud)

既然这是关于付款,我可以就csrf_exempt这样,还是那样会打开一个安全漏洞?顺便说一下,我什至尝试在这个函数上设置一个豁免,但它仍然抛出那个错误。有什么建议?

dns*_*sko 5

我终于设法通过 POST。我相当确定我已经测试过它,但它现在似乎可以工作了:我csrf_exempt在我的urls.py.

from django.views.decorators.csrf import csrf_exempt

url(r'^payment/webhook$', csrf_exempt(paymentwebhook), name='payment-webhook')
Run Code Online (Sandbox Code Playgroud)

出于某种原因,任何其他方式对我都不起作用。感谢 nik_m 的帮助,感激不尽!