我正在构建一个 nuxtjs 应用程序并尝试从全局中间件设置 cookie。 我在 GitHub 上找到了这个贡献,它展示了一种方法来做到这一点。

所以我像这样实现了我的中间件

export default function ({ isServer, res, query }) {
  if (query.lang) {
    if (isServer) {
      res.setHeader("Set Cookie", [`lang=${query.lang}`]);
    } else {
        document.cookie = `lang=${query.lang}`;
    }
  }
}

我的问题是,当我使用?lang=xxx作为参数访问我的应用程序时,我总是遇到 if 条件的 else 块。 所以我得到了错误

document is not defined

有谁知道我的代码有什么问题。 我看不出与 github 上发布的代码有何不同。

#1楼 票数:11 已采纳

您应该使用cookie-universal-nuxt

nuxt.config.js的模块部分中nuxt.config.js
['cookie-universal-nuxt', { alias: 'cookiz' }],

您可以通过nuxtServerInit直接在商店中使用它:

async nuxtServerInit({ commit, state, dispatch },
    { app, store, route, req, res, error, redirect }
) {
    app.$cookiz.set('lang', route.query.lang)
})

或者在中间件中:

export default function ({ app, res, query }) {
  if (query.lang) {
    app.$cookiz.set('lang', query.lang)
  }
}

  ask by Markus translate from so

未解决问题?本站智能推荐:

2回复

无法在 axios 响应中设置 cookie

我正在使用 Nuxt.js 开发网站,我想调用 API 并将结果放入服务器端的 cookie 我将在 Nuxt.js 中间件中完成这部分。 但是我可以调用 API,我可以设置 cookie,但是我不能使用 API 响应设置 cookie。 调用接口 设置饼干 结合它们 使用此代码时未
1回复

如何在 Cookie 中存储对象

我在 Nuxt 中有一个应用程序,我想将购物车的内容存储在 cookie 中。 为了存储 cookie,我使用cookie-universal-nuxt包。 但是,我无法在其中存储“某些”对象。 下面是一个例子: 这可以正常工作,没有问题。 问题是,它不适用于我的真实物体: 所以第二个对象显
1回复

如何在nuxt fetch中访问cookie

我正在寻找在我的 nuxt fetch 中访问 c​​ookie 的方法。 这是我的代码; 我需要 fetch 因为我可以访问$fetchState.pending 。 但是我尝试寻找一种在 nuxt fetch 中访问 c​​ookie 的方法,但我没有找到任何方法。 拜托,我在这里需要帮助
1回复

cookie 不在 document.cookie 列表中,而 http_only = false

我有一个 Nuxt.js 前端应用程序,它执行身份验证请求。 后端有一个 Laravel/Sanctum 应用程序。 它使用内置的基于 cookie 的会话身份验证。 因为没有XSRF-TOKEN X HTTP标头在/登录请求提供的认证请求失败。 任何人都可以帮助澄清为什么标头不是从后端提供的 co
2回复

我在Vue中构建了一个应用。 我需要存储信息以备后用,这是使用js-cookie的好方法吗?

我尝试使用Vuex来存储用户在我的应用程序中选择的信息,但是一旦我重新加载页面,它就消失了。 然后我开始使用Cookies,js-cookie及其完美的作品。 我觉得这一定是有问题的,如果您只可以使用cookie,为什么还要使用vuex? 我使用cookie时没有发现任何问题,但是感觉到一
1回复

在 Nuxt 中设置 SameSite cookie 属性

我正在学习 Nuxt.js 并将一些数据分配给localStorage (使用localStorage.getItem()和localStorage.setItem() ),效果很好,但我收到警告: Cookie “myCookieName” will be soon rejected becaus
1回复

如何在辅助函数/mixin 中获取Vue 模块

我在开发中使用 Nuxt.js。 我使用cookie-universal-nuxt在服务器端和客户端获取 cookie 我有一个辅助功能 然后在商店或某些页面中使用它 但它返回: 我认为是因为helper.js无法访问 vue 实例,因此无法获取this.$myCookie 。
3回复

在中间件中访问 LocalStorage - NuxtJs

好吧,我从 nuxt 开始,我有以下路线: 我想保护 /dashboard,但仅适用于使用localStorage的令牌登录的用户。 我想到的最简单的方法是创建一个 /middleware/auth.js 并将其注册到 /dashboard/index.vue 组件中。 但是我无法在中