nuxt.js axios cookie 发送问题,所以用 LocalStorage
脑袋都快炸了……\ 这篇文章想聊聊 nuxt.js 中用 axios 发送 cookie 时遇到的问题。 我的服务器环境是 nuxt.js + laravel api。\ 使用 jwt,并且用了 nuxt auth 模块。 我想在特定页面记住一些设置值,所以打算使用 cookie。\ 不过,服务器端的 cors 已经因
脑袋都快炸了……
这篇文章想聊聊 nuxt.js 中用 axios 发送 cookie 时遇到的问题。
我的服务器环境是 nuxt.js + laravel api。
使用 jwt,并且用了 nuxt auth 模块。
我想在特定页面记住一些设置值,所以打算使用 cookie。
不过,服务器端的 cors 已经因为 API 的需要配置好了。
通过刷新页面,用 asyncData 调用时,cookie 值一开始能正常发送。原因是 nuxt-auth 模块会检查 jwt 是否有效,并把已有的所有 cookie 值都发送出去。
但是,通过页面跳转调用的 asyncData 中,axios 并没有传递 cookie 值。
我找了各种资料……却没找到什么有用的内容,最后得出了这样的判断:
需要在 axios 中启用 credentials: true 选项,并且在 cors 中也启用 'supportsCredentials' => false。
好,到这里都进行得很顺利。但接下来才是问题。我用了 nuxt cookie module,现在 axios 发送时会根据 cookie 创建时的域名自行筛选。
也就是说,如果 axios 的 url 是 api.域名,它就只会发送属于 .域名 的 cookie 值。 所以每次创建 cookie 时,都必须在 domain 选项中填写 .域名。 (这里我就有点不满意了……原因是创建 cookie 的地方必须逐个填写域名,而且用 env 处理的话,前面还不会带上 .。)