首页 > 解决方案 > Chrome 和 IE 不适用于 SameSite 属性?

问题描述

我尝试学习如何设置 cookie,但是当我尝试使用 chrome/IE 打开我的页面时,就像没有 cookie 一样。但在 Firefox 中一切正常!我试图删除“sameSite 属性等安全”,并且适用于所有导航器,但我在 Firefox 中有一条错误消息,例如:“你需要提供 sameSite 属性等。”有人可以帮助我吗?这是我的代码

 function creerCookie(result){

  document.cookie = 'Cookie='+result+ '; SameSite:"Lax";secure '
  console.log(document.cookie)
}

function getCookie (name){
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}


let body = document.body

let kiki =  getCookie('Cookie')
console.log("voila :"+kiki)

if (kiki==="test1"){
    body.style.background = "red"
}else if (kiki === "test2"){
    body.style.background = "green"
}

标签: javascriptgoogle-chromeinternet-explorerfirefoxcookies

解决方案


问题在于Secure属性。从这个文档中,我们可以知道

带有该Secure属性的 cookie 仅通过 HTTPS 协议的加密请求发送到服务器,从不使用不安全的 HTTP。

不安全的站点(http:在 URL 中带有)无法使用该Secure属性设置 cookie。

您可以通过托管您的测试页面,https然后代码将在 IE 和 Chrome 中运行。

在 IE 中: 在此处输入图像描述 在 Chrome 中: 在此处输入图像描述


推荐阅读