在nextjs API请求中获取cookie / localStorage值

时间:2020-10-27 10:25:39

标签: reactjs api cookies local-storage next.js

我正在尝试在我的API请求中获取cookie或localStorage值。当我尝试访问localStorage时,出现未定义localStorage的错误,未定义cookie,我尝试了AsyncLocalStorage的运气,但遇到了未定义窗口的错误。有什么方法可以通过此异步函数获取保存的值吗?

import AsyncLocalStorage from '@createnextapp/async-local-storage'

export default async (req, res) => {
try {
let data = await AsyncLocalStorage.getItem('@key')
console.log(data)
}catch(error){
console.log(error)
}
}

1 个答案:

答案 0 :(得分:1)

这是预期的。当您在API中处理数据时,它实际上正在服务器中运行。本地存储和cookie是基于浏览器的存储(这也是未定义窗口,服务器没有窗口的原因)。结果,API无法利用它们。相反,当您发出API请求时,您需要将数据添加到标头中,然后可以在服务器上对其进行解析。

根据您的要求设置标题: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader

您应该可以从此处通过以下方式读取标题:

(req, res) => {

   // look at all these great headers we have
   const { headers } = req;

}