• cookie的设置与取值


    设置cookie

    function cookie(key, value, options) {
      let days
      let time
      let result
    
      // A key and value were given. Set cookie.
      if (arguments.length > 1 && String(value) !== '[object Object]') {
        // Enforce object
        options = Object.assign({}, options)
        if (value === null || value === undefined) {
          options.expires = -1
        }
        if (typeof options.expires === 'number') {
          days = options.expires * 24 * 60 * 60 * 1000
          time = options.expires = new Date()
          time.setTime(time.getTime() + days)
        }
        value = String(value)
    
    return (document.cookie = `${encodeURIComponent(key)}=${
      options.raw ? value : encodeURIComponent(value)
    }
    ${options.expires ? `; expires=${options.expires.toUTCString()}` : ''}
    ${options.path ? `; path=${options.path}` : ''}
    ${options.domain ? `; domain='${options.domain}` : ''}
    ${options.secure ? '; secure' : ''}`)
      }
    
      // Key and possibly options given, get cookie
      options = value || {}
      const decode = options.raw
        ? function(s) {
            return s
          }
        : decodeURIComponent
      return (result = new RegExp(`(?:^|; )${encodeURIComponent(key)}=([^;]*)`).exec(document.cookie))
        ? decode(result[1])
        : null
    }

    /** * getCookie 获取cookies * @param {String} key * @param {String} defultValue */

    function getCookie() {
      const args = Array.prototype.slice.call(arguments)
      const key = args.length > 0 ? args[0] : null
      const defaultValue = args.length > 1 ? args[1] : ''
      // const cookieValue =cookie(key)
      let result = new RegExp(`(?:^|; )${encodeURIComponent(key)}=([^;]*)`).exec(document.cookie)
      result = result ? result[1] : null
      try {
        return result === null ? defaultValue : result
      } catch (error) {
        throw error
      }
    }
  • 相关阅读:
    Vue中调用另一个组件中自定义事件
    docker下安装MySQL
    docker下安装Redis
    .NET Core简介
    Object(Asp.NET核心机制内置对象汇总)
    .NET MVC5简介(六)HttpHandler
    .NET MVC5简介(五)管道处理模型IHttpModule
    hibernate有什么作用
    hibernate编写时没有提示
    触发器insert
  • 原文地址:https://www.cnblogs.com/restart77/p/12336349.html
Copyright © 2020-2023  润新知