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 工作的主要内容,如果未能解决你的问题,请参考以下文章
Django Rest Framework:未提供身份验证凭据