澳门威利斯人_威利斯人娱乐「手机版」

来自 办公软件 2020-02-03 08:02 的文章
当前位置: 澳门威利斯人 > 办公软件 > 正文

跨域名的cookie技巧

cookie的domain和path属性:

图片 1图片 2Code
function SetCookie(name, value, expires, path, domain, secure) {  var today = new Date();  today.setTime(today.getTime());  if(expires) { expires *= 86400000; }  var expires_date = new Date(today.getTime()   (expires));  document.cookie = name   "="   escape(value)      (expires ? ";expires="   expires_date.toGMTString() : "")      (path ? ";path="   path : "")      (domain ? ";domain="   domain : "")      (secure ? ";secure" : "");}

2、path
表示cookie所在的目录,默认为/,就是根目录。如在同一个服务器上有目录/JavaScript/,/JavaScript/dir1/,/JavaScript/dir2/,现设一个cookie1的path为/JavaScript/,cookie2的path为/JavaScript/dir1/,那么JavaScript下的所有页面都可以访问到cookie1,而/JavaScript/和/JavaScript/dir2/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。默认情况下,cookie对创建它的页面和域与创建它的页面在同一目录的其他页面以及创建它的页面所在目录的子目录的其他页面可见,例如,localhost/JavaScript/write.html创建的cookie对localhost/JavaScript/read.html和localhost/JavaScript/catagory/read.html都是可见的,但对localhost/read.html不可见。可以设置cookie的path属性,只要以path指定的路径前缀开始的同一服务器的页面均可见cookie,例如,设置path=/JavaScript,则localhost/JavaScript/catagory/write.html创建的cookie对localhost/JavaScript/read.html也是可见的;设置path=/,则cookie对localhost这台服务器上的页面均可见。一级域名相同,只是二级域名不同的情况下,浏览器允许通过设置document.domain共享Cookie。也就是说,Cookie只能跨二级域名来访问,不能跨一级域名来访问。catagory.exam.cn要读取JavaScript.exam.cn设置的cookie值,可以将path设置为/,domain设置为exam.cn,则JavaScript.exam.cn设置的cookie对catagory.exam.cn甚至其它所有.exam.cn的服务器都可见。

function DelCookie(name, path, domain) {  document.cookie = name   "="      (path ? ";path="   path : "")      (domain ? ";domain="   domain : "")      ";expires=Thu, 01-Jan-1970 00:00:01 GMT";}

cookie编码注意
cookie的名/值对中的值不允许出现分号、逗号和空白符,因此在设置cookie前要用encodeURIComponent()编码,读取时再用decodeURIComponent()解码。

function GetCookie(name) {  var cookies = document.cookie.split( ';' );  var cookie = '';
  for(var i=0; i<cookies.length; i ) {    cookie = cookies[i].split('=');    if(cookie[0].replace(/^s |s $/g, '') == name) {      return (cookie.length <= 1) ? "" : unescape(cookie[1].replace(/^s |s $/g, ''));    }  }  return null;}

本文由澳门威利斯人发布于办公软件,转载请注明出处:跨域名的cookie技巧

关键词: 澳门威利斯人 ASP.NET 域名 技巧 cookie