代码之家  ›  专栏  ›  技术社区  ›  nepko

Django rest_framework put方法未获得HTTP_AUTHORIZATION

  •  0
  • nepko  · 技术社区  · 2 年前

    我对Django Rest Framework有问题。 当我试图用Axios从React发送JWT代币时,它什么也没发送。。。该代码适用于POST和GET,但在PUT-_-

    设置:

    CORS_ALLOW_METHODS = (
        "DELETE",
        "GET",
        "POST",
        "PUT",
    )
    

    Axios调用(令牌很好,所以我不发送未定义的、经过测试的):

    try {
        console.log("Ejecutando caso Exitoso");
        const response = await axios.put("http://localhost:8000/empresas/empresa-persona/" + param[1], {
            headers: {
                Authorization: `Bearer ${localStorage.getItem("token")}`,
                'Content-Type': 'application/json',
            },
        });
        console.log(response);
    } catch (error) {
        console.log(error);
    }
    

    Django函数(GET和POST中使用相同的函数,但PUT中不存在HTTP_AUTHORIZATION):

    def user_call_validation(request, perm):
        # Control de Acceso
        print(request.META)
        user = validate_user_token(token=request.META["HTTP_AUTHORIZATION"])
        
            # print(User.objects.get(id=user["id"]).get_all_permissions())
        if User.objects.get(id=user["id"]).has_perm(perm) != True:
            raise Exception("Acceso denegado!")
    
    0 回复  |  直到 2 年前