ES7, используя регулярное выражение для get (). На основе MDN
const Cookie =
{ get: name => {
let c = document.cookie.match(`(?:(?:^|.*; *)${name} *= *([^;]*).*$)|^.*$`)[1]
if (c) return decodeURIComponent(c)
}
, set: (name, value, opts = {}) => {
if (opts.days) opts['max-age'] = opts.days * 60 * 60 * 24
opts = Object.entries(opts).reduce((str, [k, v]) => str + `; ${k}=${v}`, '')
document.cookie = `${name}=${encodeURIComponent(value)}` + opts
}
, delete: (name, path) => Cookie.set(name, '', -1, path)
}
Cookie.set('user', 'Jim', {path: '/', days: 10})
// Set the path to top level (instead of page) and expiration to 10 days (instead of session)
Использование - Cookie.get (name, value [, options]): опции поддерживают все стандартные параметры файлов cookie и добавляет " days ":
Другие ответы используют «expires» вместо «max-age» для поддержки старых версий IE. Этот метод требует ES7, поэтому IE7 в любом случае отсутствует.
Нет. Если вы указываете новый номер порта, вы должны указывать имя хоста в одно и то же время.
Вы можете использовать URL-адрес схемы:
//192.168.0.120:9080
... но это настолько близко, насколько вы можете получить.
Рассмотрите возможность динамической генерации части имени хоста с помощью кода на стороне сервера.