我进入网站很奇怪,如果我使用permission_classes = [AllowAny]
或isAuthenticate类,则尝试提交表单,但遇到错误CSRF Failed: CSRF token missing or incorrect
在以下情况下,将弹出一个输入密码和用户名的弹出窗口。我全班都像
class AddReview(APIView):
serializer_class = ReviewSerializer
authentication_classes = (BasicAuthentication,)
def post(self, request):
rest = request.POST.get('restaurant')
dish = request.POST.get('dish')
我的 settings.py 是
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}
我只想提交一个自定义表单来提交数据。任何使问题变得更好的帮助或建议都将受到高度重视。
更新
我可以使用
提交表单class SessionAuthentication(SessionAuthentication):
def enforce_csrf(self, request):
return
但是为什么我必须执行它?我在做什么错了?
答案 0 :(得分:0)
理想情况下,您的网站表单应具有csrf令牌,并且也应将其发送到服务器。也许像这样:
<form method="post">{% csrf_token %}</form>
MIDDLEWARE
设置中激活了CSRF中间件。csrf_exempt()
装饰器参考