Django 禁止访问(未设置 CSRF cookie。)

标签 django

我想知道 Django 一直向我抛出的 CSRF Coo​​kie 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/

相关文章:

python - 如何通过 package_name.module_name.class_name "path"实例化类

python - 从我的 Django 应用程序中的数据库中选择数据

ajax - 数据表 : Custom Response Handling

jquery - 当添加权限为 False 时,Django-grappelli 添加按钮在内联中可见

python - DRF TypeError __init__() 恰好接受 1 个参数(给定 2 个)

python - Django ModelForm 验证不起作用

mysql - 我可以在 Django 中使用 ajax 数据表和运行时自定义查询吗

python - 连接到 Docker 容器上的 PostgreSQL 数据库

javascript - 如何使用 Javascript 提交 Django 表单?

python - 通过 HTTPS 服务 Django 站点