我目前正在为我的项目使用vue-js-nuxt。我在解析要检索的请求标头时遇到问题cf ipcountry由cloudflare提供。这个用例是显示不同国家的不同内容
在我的vue文件下,我的代码看起来像这样
async asyncData(context) {
try{
const countryCF = context.req.headers['cf-ipcountry']
}
}
当我尝试console.log(countryCF(时,它不会返回它,但如果我尝试console.log(context.req.headers['cf-ipcountry'](,它工作得很好,它确实打印出了整个标题,但我只需要cf ipcountry,我错过了什么吗?感谢
我使用了以下内容:
const country_code = req.headers['cf-ipcountry'] ?? 'unknown';
它对我来说效果很好,没有打印整个标题,只有两个字母的国家代码。
我意识到原因是由于Nuxt SSR初始加载来自服务器端,但后续请求将来自客户端,这就是为什么它返回错误
if (process.server) {
context.app.$cookiz.set('user-country', context.req.headers['cf-ipcountry'])
}
通过if process.server求解,我将其与此包一起存储在cookie中https://www.npmjs.com/package/cookie-universal-nuxt