我想知道 Django 一直向我抛出的 CSRF Cookie not set
错误是怎么回事。我创建了一个 View (见下文),它是付款的回调。我对发送到该 View 的内容没有影响。我查看了 StackOverflow 上的其他帖子,但我认为没有任何帖子适用于我。他们中的大多数人只能在他们的表单中实现 csrf 保护,csrf_exempt 他们的 View ,或者他们使用 rest_framework。
class PaymentWebhook(View):
def post(self, request, *args, **kwargs):
# ...
现在,每当我对此函数不做任何操作时,我都会收到此错误:
Forbidden (CSRF cookie not set.): /payment/webhook
因为这是关于支付的,我可以只csrf_exempt
这个吗,还是会打开一个安全漏洞?顺便说一句,我什至尝试过对该函数进行豁免,但它仍然会抛出该错误。
有什么建议吗?
最佳答案
我终于设法通过了一个POST。我很确定我已经测试过它,但它现在似乎可以工作了:我在我的 urls.py
中放置了一个 csrf_exempt
。
from django.views.decorators.csrf import csrf_exempt
url(r'^payment/webhook$', csrf_exempt(paymentwebhook), name='payment-webhook')
出于某种原因,任何其他方式对我都不起作用。感谢 nik_m 的帮助,感激不尽!
关于Django 禁止访问(未设置 CSRF cookie。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43294661/