codecamp

ThinkJS Cookie

Cookie

获取 cookie

controller 或者 logic 中,可以通过 this.cookie 方法来获取。如:

export default class extends think.controller.base {
  indexAction(){
    let cookie = this.cookie("theme"); //获取名为 theme 的 cookie
  }
}

http 对象里也提供了 cookie 方法来获取 cookie。如:

let cookie = http.cookie("theme");

cookie 配置

cookie 默认配置如下:

export default {
  domain: "", 
  path: "/",
  httponly: false, //是否 http only
  secure: false,
  timeout: 0  //有效时间,0 为浏览器进程,单位为秒
};

默认 cookie 是随着浏览器进程关闭而失效,可以在配置文件 src/common/config/cookie.js 中进行修改。如:

export default {
  timeout: 7 * 24 * 3600  //将 cookie 有效时间设置为 7 天
};

设置 cookie

controller 或者 logic 中,可以通过 this.cookie 方法来设置。如:

export default class extends think.controller.base {
  indexAction(){
    this.cookie("theme", "default"); //将 cookie theme 值设置为 default
  }
}

http 对象里也提供了 cookie 方法来设置 cookie。如:

http.cookie("theme", "default");

如果设置 cookie 时想修改一些参数,可以通过第三个参数来控制,如:

export default class extends think.controller.base {
  indexAction(){
    this.cookie("theme", "default", {
      timeout: 7 * 24 * 3600 //设置 cookie 有效期为 7 天
    }); //将 cookie theme 值设置为 default
  }
}
ThinkJS Service(服务)
ThinkJS 错误处理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }