二级域名的cookie顶级域名 享受不到。不经过后台,我想直接vue实现

import Cookies from 'js-cookie'
// cookie保存的天数
import config from '@/config'
import { forEach, hasOneOf, objEqual } from '@/libs/tools'

const { title, cookieExpires, useI18n } = config

export const TOKEN_KEY = 'token'

export const setToken = (token) => {
  Cookies.set(TOKEN_KEY, token, null,null,'.cargopm.com')
  Cookies.setDomain('.cargopm.com')
}

export const getToken = () => {
  const token = Cookies.get(TOKEN_KEY)
  if (token) return token
  else return false
}

如题,我的前端代码其他都是一样的,唯一的不同是 二级域名我执行了setToken,顶级的这个代码被我注释了

beforeCreate () {
  debugger
  ss.setAccessToken('我是localStorage')
  setToken('我是Cookie')
  if (this.$route.query.error) {
    service.getErr(this.$route.query.error).then(res => {
      this.FormValidate.mobile = res.data.mobile
      this.alertMessage = res.data.message
      this.showAlert = true
      this.inputMobile(this.FormValidate.mobile)
    })
  }
},
computed: {
  getLocalStorage () {
    return ss.getAccessToken()
  },
  getToken () {
    debugger
    return getToken()
  }
},

clipboard.png

clipboard.png
我的顶级域名http://cargopm.com/Account/Re... 获取不到cookie ,怎么回事

阅读 5k
4 个回答

子域名可以共享父域名的cookie,反之不行

首先cookie跨子域名是需要配置domain。
比如你顶级域名为:cargopm.com
你的子域名为:cookie.cargopm.com,那么后台返回的set-cookie头部应该附带上domain信息。
如:Set-Cookie: token=token; Domain=cargopm.com;
如果domain的值为cookie.cargopm.com,那么这个cookie只能在本域名下访问

在存储 cookie 的时候,设置 domain 为 主域名就好了。

clipboard.png

我看了一下是可以获取到的 如果有值的话
你获取不到去application里面看看 字段名 domain path
如果字段名都没那说明就没设置值或者域名不一致 有字段名 domain是顶级域名 path是根目录就没问题 请求时候肯定会带过去
看你标题 什么不经过后台 那有什么意义 首先是后台给你设置值 你拿到值 还要还给后台 字段名还要一直 domain也要一直 path同样

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