javascript cookie не устанавливает дату окончания - PullRequest
0 голосов
/ 16 мая 2019

Я использую файл cookie в JavaScript, чтобы запомнить последнюю позицию на карте, но я просто понимаю, что файл cookie пропускает дату истечения срока действия, даже если я добавил.

Здесь вы можете проверить код

https://www.traffwebdemo.co.uk/parking/basic.html

Здесь мой код, по какой-то причине единственный, который принимает дату истечения срока действия (и фактически присутствует, если я проверяю cookie), - это Opera, другие браузеры, похоже, пропускают дату истечения срока действия или говорят, что истекает в сеансе (FF) .

const setUserPrefs = (mapView) => {
  let cookieStr
  const curZ = mapView.getView().getResolution()
  const mapCen = mapView.getView().getCenter()
  const expdate = new Date()

  // set expire date to one week
  expdate.setTime(expdate.getTime() + (7 * 24 * 60 * 60 * 1000))

  cookieStr = `#${mapCen[0]}#${mapCen[1]}#${curZ}`

  document.cookie = `traffweb${window.location.href}= ${escape(cookieStr)}, expires=${expdate.toUTCString()} path=/`
}

Как я могу заставить работать этот код?

если я использую decodeURIComponent (document.cookie); да, у меня есть дата истечения срока действия файла cookie, но нет, если я иду в приложение в инструментах разработчика, и мне не нужно проверять, установлен ли он или нет, если честно, просто закройте браузер и снова откройте его по той же ссылке, и карта не на той же позиции, это работает только на сессии.

1 Ответ

1 голос
/ 16 мая 2019

Просто НИКОГДА не устанавливайте свои собственные куки. Используйте проверенную библиотеку, такую ​​как https://github.com/js-cookie/js-cookie - ваш контент нарушает cookie

<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

с помощью

let cookieName = location.href.split("/").slice(-2); 
cookieName.pop(); // get rid of file name
const curZ = mapView.getView().getResolution()
const mapCen = mapView.getView().getCenter()
let cookieStr = `#${mapCen[0]}#${mapCen[1]}#${curZ}`
Cookies.set("traffweb"+cookieName, cookieStr , { expires: 7, path: '/' });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...