我正在开发一个网站[将React用于前端//将Spring用于后端],并且该网站中有一个管理面板。有一个按钮可以让其他管理员将用户添加到数据库中,但是axios的post方法存在问题。
我检查了很多不同的资源,但找不到确切的信息。所以我在这里。
在下面使用此语法时,我收到此错误401 error code, unauthorized client
async addUsers(newData){
const headers = {
'Content-Type': 'application/json',
'Authorization': window.$auth
}
await Axios.post(
"http://localhost:8080/admin/addUser",
JSON.stringify(newData),
{headers: headers}
);
}
之前,我尝试使用一种我认为是错误的语法,并且使用这种语法我得到415错误代码:415 error code, unsupported media type
async addUsers(newData){
await Axios.post(
"http://localhost:8080/admin/addUser",
JSON.stringify(newData),
{auth:window.$auth},
{headers: {'Content-Type':'application/json'}}
);
}
P.S:我尝试使用Insomnia REST客户端手动将User添加到数据库中,并成功添加它并返回200 Code。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
与其随每个请求发送授权令牌,不如将其更好地添加为默认标头。首先检查令牌是否存在,是否存在
if(authorization_token){
axios.defaults.headers.common['Authorization'] = authorization_token;
}
答案 1 :(得分:1)
这似乎是一个“授权始终返回401错误代码”的问题。更改完整的语法即可解决。这是我在https://github.com/axios/axios/issues/926上找到解决方案的网站
这是我已修复并可以正常工作的代码部分:
async addUsers(newData){
await Axios({
method:'post',
url:'http://localhost:8080/admin/addUser',
data:JSON.stringify(newData),
auth:window.$auth,
headers:{'Content-Type':'application/json'}
})
}