Mar*_*kus 2 javascript cookies nuxt.js
我正在构建一个 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}`;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我使用?lang=xxx作为参数访问我的应用程序时,我总是遇到 if 条件的 else 块。所以我得到了错误
document is not defined
Run Code Online (Sandbox Code Playgroud)
有谁知道我的代码有什么问题。我看不出与 github 上发布的代码有何不同。
Man*_*piK 11
您应该使用cookie-universal-nuxt。
将此添加到您的模块部分中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)
})
Run Code Online (Sandbox Code Playgroud)
或者在中间件中:
export default function ({ app, res, query }) {
if (query.lang) {
app.$cookiz.set('lang', query.lang)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11206 次 |
| 最近记录: |