0

经过两天的挣扎,我终于找到了修复它的解决方案,但我不确定它为什么会起作用。

我想发出请求以使用 axios 在服务器中验证 JWT,所以我这样做很简单

axios.post('http://localhost:5000/auth', {headers: {
   Authorization: 'Bearer ' + varToken
}})

但是我得到了undefined与此同时,当我用 Postman 尝试它时,它工作得很好,我在请求的标头中得到了令牌。

我用谷歌搜索了一整天,问了 3 个堆栈溢出问题,他们都建议我指定{ Content-Type: application, Accept: application }但它没有用。今天我设法通过像这样设置 axios 来使它工作

axios({
  method: 'post',
  url: 'http://localhost:5000/auth',
  headers: {
    Authorization: 'Bearer ' + varToken
  }
})

它有效!所以我的问题是

这两个 axios 配置有什么区别?第一种方法在技术上被定义,一切都与第二种方法相同,为什么我从中得到未定义?

*服务器代码

app.post('/auth', (req, res) => {
    console.log(req.headers['authorization'])
});
4

1 回答 1

0

您没有正确调用第一个。该签名的调用签名是:

axios.post(url[, data[, config]])

第二个参数是 for data,而不是配置选项。如果你不打算传递任何数据(通常你会通过一个帖子),那么你可以这样做:

axios.post('http://localhost:5000/auth', "", {headers: {
   Authorization: 'Bearer ' + varToken
}});
于 2020-04-09T02:16:32.680 回答