nuxt.js 使用了 同步axios请求后 多用户同时访问出现cookie错乱的问题

新手上路,请多包涵

题目描述

在页面内使用了

asyncData:async function({$axios,req}){
    let base = await axios.get('http://www.test.com/api/config/getBaseConfig');
    return {
        base:base.data
    }
}

只要在页面上使用了同步请求,则在 middleware/auth.js 以及在能使用 req 的任何地方取

req.header.cookie

在多个用户同时访问的情况下会出现某一个或者多个用户能获取当多个cookie的情况,这个问题已经让我抓狂 4 天了,大佬来拯救一下。

相关代码

image
image

阅读 3.8k
2 个回答

不好意思 async function 是大大的异步函数。只是可以用 await关键字把代码写成同步代码而已;

再说说nuxt的问题:
先了解nuxt的生命周期:
created 服务端渲染的时候, 会执行这个方法, 这个时候毛用都没有;  页面打开后, 应该还是没有 cookie 的.
而且 created 是在 中间健和 asyncData 之后执行的

我猜测是不是服务器端没能正确区分出不同的客户端,从而混淆了该返回的数据,是否能在客户端请求中带上特征标记,从而让服务器端能够区分,从而进行处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题