Django Postman post通过API创建用户会导致CSRF错误-为什么?
我目前正在试用邮递员 我目前有一个基本上通过REST调用创建用户的视图 我用django rest来做这个Django Postman post通过API创建用户会导致CSRF错误-为什么?,django,django-rest-framework,postman,Django,Django Rest Framework,Postman,我目前正在试用邮递员 我目前有一个基本上通过REST调用创建用户的视图 我用django rest来做这个 class CreateEmployer_CreateAPIView(CreateAPIView): serializer_class = Serializer_CreateEmployer_RX permission_classes = (permissions.AllowAny,) def post(self, request, format=None): user = re
class CreateEmployer_CreateAPIView(CreateAPIView):
serializer_class = Serializer_CreateEmployer_RX
permission_classes = (permissions.AllowAny,)
def post(self, request, format=None):
user = request.user
serializer = Serializer_CreateEmployer_RX(data=request.data)
if serializer.is_valid():
Savedmodel = serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
这是在url.py中
url(r"^create/$", csrf_exempt(CreateEmployer_CreateAPIView.as_view()),name="Create"),
当我试图通过邮递员调用这个api时,我得到了一个错误
Forbidden (403)
CSRF verification failed. Request aborted.
You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.
我的问题是,为什么我会出现这个错误,我如何解决它?从我所读到的关于CSRF的内容来看,当表单加载到网页中时,一个带有CSRF值的cookie会随表单一起发送,然后在提交表单时,会比较CSRF令牌的值,以确保它是由视图呈现的同一表单发送的。在我的情况下,没有表单,并且此视图上的身份验证是无效的AllowAny
。这以前也有用,但现在我突然发现了这个错误。我的问题是如何解决这个问题?在这种情况下,由于没有表单,如何获取CSRF令牌值?我看过很多关于这个问题的帖子和《邮递员》,但据我所知,大多数帖子建议在标题中添加一个X-CSRFToken
。即使我加上这些,我如何得到这些值
你能添加邮差截图吗?是的,我会更新我的answer@JerinPeterGeorge更新了我的回答你在《邮递员》中使用了拦截器吗?尝试从URL中删除
csrf\u export