首页 > 解决方案 > 访问请求标头时未定义

问题描述

我正在为我的 API 使用 Express JS / Node JS:

这是我的 API 代码:

router = express.Router();

router.post('/someendpoint', async (request, response) =>{
    
    //do some stuff
    
    response.set("accessToken", accessToken);

    response.cookie("accessToken", accessToken, {secure: true, httpOnly: true});
    //do some other stuff and then return data
});

使用 Postman,我可以在标题中看到 cookie 和 accessToken:

邮递员捕获

这是我的反应 JS 代码:

  someFunction = async () =>{
      const email = "someemail@email.com"
      let result = await axios.post(`http://localhost:5000/someendpoint`, {email}, {withCredentials: true});
    
    
       /** some code */
    
      authToken = result.headers["accessToken"];  //getting undefined here
      console.log(authToken);
 }

在 React JS 中,当我访问标题时我变得不确定,这背后的原因是什么?

当我在“数据”而不是标题中传递 accessToken 时,它正在工作。

authToken = result.data.accessToken;  

标签: javascriptnode.jsreactjsexpressaxios

解决方案


我不知道您在客户端和版本中使用的是什么,但我建议您正确检查访问结果的标题。我看到了 nodejs 的版本和模块,你必须使用 result.header.accessToken,甚至 result.headers('accessToken')。

检查结果的结构和/或上面存在的功能。


推荐阅读