Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Axios:基本身份验证无法处理GET请求_Javascript_Node.js_Reactjs_Axios - Fatal编程技术网

Javascript Axios:基本身份验证无法处理GET请求

Javascript Axios:基本身份验证无法处理GET请求,javascript,node.js,reactjs,axios,Javascript,Node.js,Reactjs,Axios,我有一个带有基本身份验证的axios get请求,但我一直在返回401状态码。如果我在做post请求,我的代码是有效的,所以我不知道我在这里做错了什么 我的后端代码: app.get('/api/find-user', (req, res) => { const username = req.body.username; axios.get('my-url', username, { auth:{ username: 'my-user

我有一个带有基本身份验证的axios get请求,但我一直在返回401状态码。如果我在做post请求,我的代码是有效的,所以我不知道我在这里做错了什么

我的后端代码:

app.get('/api/find-user', (req, res) => {
    const username = req.body.username;
    axios.get('my-url', username, {
        auth:{
            username: 'my-username',
            password: 'my-password'
        }
    })
    .then(resp => {
        res.json({resp});
    })
    .catch(error => {
        res.send(error.response.status);
    })
});
findUser(user){
    const username = user;
    axios.get('/api/find-user', {username})
        .then(resp => {
            console.log(resp);
        })
        .catch(error => {
            console.log(error)
        })
}
我的前端代码:

app.get('/api/find-user', (req, res) => {
    const username = req.body.username;
    axios.get('my-url', username, {
        auth:{
            username: 'my-username',
            password: 'my-password'
        }
    })
    .then(resp => {
        res.json({resp});
    })
    .catch(error => {
        res.send(error.response.status);
    })
});
findUser(user){
    const username = user;
    axios.get('/api/find-user', {username})
        .then(resp => {
            console.log(resp);
        })
        .catch(error => {
            console.log(error)
        })
}
同样,当我发布一个帖子来创建一个新用户时,它确实起作用,但当我发出GET请求时,它总是说我没有授权


编辑:如果你想放弃投票,就要足够成熟,解释原因。

这里有很多潜在的原因。我认为说明您试图访问的API可能会有所帮助。例如:

  • 您是否确实在API服务器上为您的帐户授予了读取权限
  • 您的POST请求没有使用密码,因此您的密码对于GET是否绝对正确
您需要执行以下操作:

const usernamePasswordBuffer = Buffer.from(username + ':' + password);
const base64data = usernamePasswordBuffer.toString('base64');
const axiosObject = axios.create({
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Basic ${base64data}`,
    }
});

因为Axios需要使用用户名和密码“加密”身份验证。

我使用的是Jira api,我遇到了同样的问题,只是安装了
qs
并将主体解析为:
let body=qs.stringify(params)
,因为参数是我的用户名和密码。这真的很有帮助。