POST 请求的身份验证错误:“未提供身份验证凭据”使用 Axios,但使用 POSTMAN 工作

Posted

技术标签:

【中文标题】POST 请求的身份验证错误:“未提供身份验证凭据”使用 Axios,但使用 POSTMAN 工作【英文标题】:Auth error with POST request: "Authentication credentials were not provided" using Axios, but works using POSTMAN 【发布时间】:2020-03-11 15:15:19 【问题描述】:

我正在使用 React 并尝试处理用户更改密码。我正在发送这样的 POST 请求:

axios.post('http://127.0.0.1:8000/users/password/change/', 
            headers: 
                'Content-type': 'application/json',
                'Authorization': `Token $token`
            ,
            data: 
                new_password1: newPassword1,
                new_password2: newPassword2
            
        )

...我收到 401 错误:“未提供身份验证凭据”。

但是,如果我通过 POSTMAN 发送完全相同的相同请求,它就可以正常工作。

我也在同一个应用中做 GET 请求来获取用户数据,它也可以正常工作:

axios.get('http://127.0.0.1:8000/users/' + path + '/' + userId + '/', 
            headers: 
                'Content-type': 'application/json',
                'Authorization': `Token $token`
            
        )

可能是什么问题...?

【问题讨论】:

您是否尝试过硬编码令牌并在 POST 请求中进行调用? 是的,我有,但谢谢你的提示。仍然无法使用 axios... 【参考方案1】:

axios.post 期望(网址、数据、配置)。

所以你需要这样使用:

  axios.post(
    "http://127.0.0.1:8000/users/password/change/",
    
      new_password1: newPassword1,
      new_password2: newPassword2
    ,
    
      headers: 
        "Content-type": "application/json",
        "Authorization": `Token $token`
      
    
  );

文档:

https://github.com/axios/axios#axiosposturl-data-config

【讨论】:

以上是关于POST 请求的身份验证错误:“未提供身份验证凭据”使用 Axios,但使用 POSTMAN 工作的主要内容,如果未能解决你的问题,请参考以下文章

“未提供身份验证凭据。”在 DRF 中

"detail": "未提供身份验证凭据。"一般视图

未提供身份验证凭据 drf

Django Rest Framework:未提供身份验证凭据

"detail": "未提供身份验证凭据。"设置 uid 和 token 时出现此错误

Django Rest Framework JWT 未提供身份验证凭据