Javascript Django Rest Framework在编辑用户时返回403禁止,但在未以任何用户身份登录时工作

Javascript Django Rest Framework在编辑用户时返回403禁止,但在未以任何用户身份登录时工作,javascript,python,django,django-rest-framework,http-status-code-403,Javascript,Python,Django,Django Rest Framework,Http Status Code 403,我正在尝试使用Django Rest w/React前端对我的用户模型发出PUT请求,以编辑用户名、个人简历等 当我通过django rest客户端在url上发出PUT请求时,它不会出现任何问题。在前端,当我没有登录到任何django用户时,我可以通过AXIOS发送PUT请求,而不会出现任何问题 一旦我登录到任何django用户,即使拥有超级用户权限,我的PUT请求也会出现403禁止错误 以下是我的视图.py: class RetrieveUpdateDestroyUser(RetrieveUp

我正在尝试使用Django Rest w/React前端对我的用户模型发出PUT请求,以编辑用户名、个人简历等

当我通过django rest客户端在url上发出PUT请求时,它不会出现任何问题。在前端,当我没有登录到任何django用户时,我可以通过AXIOS发送PUT请求,而不会出现任何问题

一旦我登录到任何django用户,即使拥有超级用户权限,我的PUT请求也会出现403禁止错误

以下是我的视图.py:

class RetrieveUpdateDestroyUser(RetrieveUpdateDestroyAPIView):

    serializer_class = UserCreateUpdateSerializer
    queryset = CustomUser.objects.all()
    lookup_field = 'id'
    permission_classes = (AllowAny,)

    def update(self, request, *args, **kwargs):
        """
        PUT and UPDATE requests handled by this method.
        """
        return super().update(request, *args, **kwargs)
在我的前端,这是我发出PUT请求的方式(PUT请求通过axios完成):

export类UserProxy扩展了BackendProxy{
updateUser(updateUser,用户ID){
let参数=`user/${userID}`
返回新承诺((解决、拒绝)=>{
this.putRequest(updateUser,参数)
.then(response=>{resolve(response)})
.catch(错误=>{
console.log(错误)
拒绝(错误)
})
});
}

}
导致这种情况的一个原因是您使用的是SessionAuthentication。匿名用户在身份验证过程的早期获得“身份验证”。经过身份验证的用户需要对CSRF进行额外检查。如果失败,将抛出HTTP403


在我的例子中,我意识到我应该使用GET,而CSRF不适用()。

非常感谢,我最终解决了它,正如您所说,这是一个CSRF问题。如果有人在寻找答案,那就在我的个人资料上