我在我的Django应用程序的流程中,我将用户重定向到另一个服务(如贝宝),这之后它自己的一些处理,返回用户回到我自己的服务器上。 我的服务器上的返回地点是我渲染使用使用direct_to_template一个简单的HTML成功页面。
对于一些奇怪的原因,其他的服务器发送POST请求,因此用户将看到一个CSRF令牌丢失的错误与其他服务器不发送回任何CSRF令牌。
如何免除CSRF令牌的使用direct_to_template看法?
我在我的Django应用程序的流程中,我将用户重定向到另一个服务(如贝宝),这之后它自己的一些处理,返回用户回到我自己的服务器上。 我的服务器上的返回地点是我渲染使用使用direct_to_template一个简单的HTML成功页面。
对于一些奇怪的原因,其他的服务器发送POST请求,因此用户将看到一个CSRF令牌丢失的错误与其他服务器不发送回任何CSRF令牌。
如何免除CSRF令牌的使用direct_to_template看法?
您可以使用csrf_exempt
装饰禁用CSRF保护特定视图。
假设您的网址模式是:
('^my_page/$', direct_to_template, {'template': 'my_page.html'})
以下导入添加到您的urls.py
:
from django.views.decorators.csrf import csrf_exempt
然后将URL模式:
('^my_page/$', csrf_exempt(direct_to_template), {'template': 'my_page.html'})
您可以使用@csrf_exempt
装饰到excempt CSRF令牌这一点,你必须导入
from django.views.decorators.csrf import csrf_exempt
然后写@csrf_exempt
你的观点之前,
这将正常工作:)