【问题标题】:Unable to receive authorization headers in express backend?无法在快速后端接收授权标头?
【发布时间】:2021-12-10 21:10:33
【问题描述】:

我正在制作一个 MERN 应用程序。在 useEffect 内部,我正在进行 API 调用,在其中设置了一个自动令牌。但我无法从后端的标头中获取授权令牌。

useEffect(()=>{
    fetch(`${API}/${userId}/courses`,{
        method:"GET",
        'Authorization': `Bearer ${token}`,
        'Content-Type': 'application/json'
    }).then(response=>{
        return response.json();
    }).then(data=>{
        console.log(data)
    })

})

如果我尝试在后端控制台.log req.headers,我会收到如下响应:

{ host: 'localhost:3030',
  connection: 'keep-alive'
  origin: 'http://localhost:3000',
  referer: 'http://localhost:3000/',
}

其中没有授权属性。 但是,如果我尝试从 POSTMAN 进行相同的 api 调用,我会在标头中获取授权令牌。有什么问题?

【问题讨论】:

  • 我相信,您在与服务器不同的域上运行站点。这就是您无法访问非标准标头(跨源资源共享)的原因。请查看此详细答案以进行澄清stackoverflow.com/questions/38953864/…

标签: javascript reactjs express


【解决方案1】:

您必须将标头包装到参数对象中的键 headers

fetch('${API}/${userId}/courses',{
        method:"GET",
        headers: {
          'Authorization': 'Bearer ${token}',
          'Content-Type': 'application/json'
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2017-07-06
    • 2021-01-30
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多