Axios Post方法授权不起作用-React

时间:2020-04-03 15:00:37

标签: reactjs axios

我正在开发一个网站[将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。
有人可以帮我解决这个问题吗?

2 个答案:

答案 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'}
        })
    }