【问题标题】:Auth error with POST request: "Authentication credentials were not provided" using Axios, but works using POSTMANPOST 请求的身份验证错误:“未提供身份验证凭据”使用 Axios,但使用 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...

标签: reactjs axios authorization postman token


【解决方案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

【讨论】:

    猜你喜欢
    • 2021-11-29
    • 2023-02-22
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多