我使用Django 2.0,我想在我的网址http://example.com/ipn/上接受来自远程第三方的IPN
这是我的网址:
urlpatterns = [
...
# url for ipn
url(r'^ipn/$', views.index, name='ipn'),
...
]
这是我的观点:
# decorator
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def ipn(request):
''' process ipn call from merchant'''
ipn = get_data_from_ipn(request)
在我的settings.py中:
ALLOWED_HOSTS = ['ipnsender.net']
...
我想只有ipn视图不使用csrf,但我无法理解为什么我确实有以下错误,尽管文档只告诉你需要@csrf_exempt装饰器。
我的日志每次都告诉我:
Forbidden (CSRF cookie not set.): /ipn/
[13/Mar/2018 22:36:50] "POST /ipn/ HTTP/1.1" 403 2868
答案 0 :(得分:1)
您在index
内使用ipn
而非urls.py
功能来处理/ipn/
url(r'^ipn/$', views.ipn, name='ipn'),