我正在尝试在我的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)
}
}
答案 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;
}