cookie读写

cookie属性

name: cookie名称

value: cookie值

domain: 即可访问此cookie的域名(不同级有不同限制)

path: 可访问此cookie的页面路径 (对应链接路径,如果设置路径则对应路径才可以访问到对应的cookie,默认设置 / 根路径)

expires/Max-Age: cookie超时时间, 默认为Session

Size: cookie大小

http: 即httponly属性, true时只有http请求头会带有此信息, 而不能通过document.cookie来访问 (服务端SetCookie设置)

secure: 设置是否只可通过https来传递此条cookie(服务端SetCookie设置)

js-cookie

npm 地址: https://www.npmjs.com/package/js-cookie

npm add js-cookie --save  //执行需要放到使用save , 打包依赖放 dev。
yarn add js-cookie --save
import Cookies from 'js-cookie'

Cookies.set('name', 'value', { path: '',expires: 7 ,domain: '.domain.com' });
//expires : day
Cookies.get('name',{{ domain: 'domain.com' }}); // => 'value'
Cookies.remove('name', { path: '',domain: '.domain.com' });

js cookie 读写

ES6 写法

setCookie
/**
 *
 * @param name
 * @param value
 * @param time:day 传0 或者不传 则设置为session格式cookie,关闭浏览器消失。
 * @param path = '/a/b/'   /a/b/ 对应链接目录。如果设置path则只有链接目录对应才可以访问到cookie,默认为根路径(站点都可访问)
 * @param domain = 'a.com'
 */
function setCookie(name, value, time = 0,{path = '',domain = ''} = {}) {
    let timeStr = ''
    if (time) {
        let now = new Date();
        now.setTime(now.getTime() + time * 24 * 60 * 60 * 1000);
        timeStr = 'expires=' + now.toGMTString() + ';'
    }
    let domainStr =  'domain=' + (domain || document.domain.split('.').slice(-2).join('.')) + ';'; //设置一级域名
    let pathStr =  'path='+ (path || '/') +';'
    document.cookie = `${name}=${encodeURIComponent(value)};${pathStr}${timeStr}${domainStr}`
}

getCookie
/**
 * 获取cookie
 * @param name
 * @return {string}
 */
function getCookie(name) {
    let reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    let match = document.cookie.match(reg);
    return match?decodeURIComponent(match[2]):'';
}
removeCookie
//注释 如果设置cookie设置了 domain 和 path ,删除cookie需要删除对应的cookie 那么删除cookie也需要设置path ,domain
function removeCookie(name, {path = '',domain = ''} = {}) {
    setCookie(name,'',-1,{path,domain})
}

非ES6 写法

setCookie
/**
 *
 * @param name
 * @param value
 * @param time:day 传0 或者不传 则设置为session格式cookie,关闭浏览器消失。
 * @param path = '/a/b/'   /a/b/ 对应链接目录。如果设置path则只有链接目录对应才可以访问到cookie,默认为根路径(站点都可访问)
 * @param domain = 'a.com'
 */
function setCookie(name, value, time, param) {
    let timeStr = ''
    let domain = param && param.domain ? param.domain : '';
    let path = param && param.path ? param.path : '';
    if (time) {
        let now = new Date();
        now.setTime(now.getTime() + time * 24 * 60 * 60 * 1000);
        timeStr = 'expires=' + now.toGMTString() + ';'
    }
    let domainStr = 'domain=' + (domain || document.domain.split('.').slice(-2).join('.')) + ';'; //设置一级域名
    let pathStr = 'path=' + (path || '/') + ';'
    document.cookie = name + '=' + encodeURIComponent(value) + ';' + pathStr +timeStr + domainStr;
}
removeCookie
function removeCookie(name, param) {
    setCookie(name, '', -1, {path:param?param.path:'', domain:param?param.domain:''})
}

小程序 cookie 读写

setCookie

https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html

//value: 需要存储的内容。只支持原生类型、Date、及能够通过`JSON.stringify`序列化的对象。
wx.setStorageSync('name',  value);
getCookie
wx.getStorageSync('name');
clearCookie
wx.setStorageSync('name','');

react-native cookie 读写

react-native-cookie

https://www.npmjs.com/package/react-native-cookie

# install library from npm
npm install react-native-cookie --save
# link native code
react-native link react-native-cookie

import Cookie from 'react-native-cookie';

// set cookie 'foo=bar' for 'http://bing.com/'
Cookie.set('http://bing.com/', 'foo', 'bar').then(() => console.log('success'));

// set cookie 'foo=bar' for 'http://bing.com/' with options:
Cookie.set('http://bing.com/', 'foo', 'bar', {
    path: 'ditu',
    domain: 'cn.bing.com'
}).then(() => console.log('success'));

微生态-微商创业

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值