在操作cookie的过程中走了一些弯路,cookie是不能跨域的,不过网上搜索到的函数,貌似能够跨域。于是在IE6和maxthon1.6上不断尝试,终于以失败告终.
<script type="text/javascript">
function setCookie(name,value,expiry,path,domain){
var nameString = name +"='"+ value+"'";
var expiryString = (expiry == null)?"" : ";expires ='" + expiry.toGMTString()+"'";
var pathString = (path == null) ? "":";path ='" + path+"'";
var domainString = (domain == null)?" ":";domain ='" + domain+"'";
var cookies=nameString + expiryString + pathString + domainString;
document.cookie = cookies;
}
</script>
上述函数中,如果传入了domain和path的值,cookie都设置不成功:
var d=new Date(2008,12,31);
setCookie("test","test",d,"/ExampleApp",null);
setCookie("test2","test2",d,"/help",null);
setCookie("test2","test3",d,"/help",www.test.com.cn);
//-------------------------------
setCookie("test4","test4",d,null,null);
java的servlet中也是如此:
Cookie test5=new Cookie("test5","test1");
test5.setDomain("www.test1.com.cn");
test5.setPath("/help") ;
test5.setMaxAge(24*60*60);
response.addCookie(test5) ;
Cookie test6=new Cookie("test6","test6");
test6.setDomain(request.getServerName());
test6.setPath(request.getServletPath()) ;
test6.setMaxAge(24*60*60);
response.addCookie(test6) ;
//---------------------------
Cookie test7=new Cookie("test7","test7");
test7.setMaxAge(24*60*60);
response.addCookie(test7) ;
Cookie test8=new Cookie("test8","test8");
test8.setMaxAge(24*60*60);
response.addCookie(test8) ;
设置了path和domain也没有报错,但是这个cookie就没有了。因此上述语句只成功设置了test4、test7、test8这三个cookie的值.下面是后台可以读取到的cookie的各个属性的值,等号前面是属性名称,等号后面是属性的值.:
DEBUG (CookieServlet.java:29) - name=test4,value='test4',domain=null,path=null
DEBUG (CookieServlet.java:29) - name=test7,value=test7,domain=null,path=null
DEBUG (CookieServlet.java:29) - name=test8,value=test8,domain=null,path=null
DEBUG (CookieServlet.java:29) - name=JSESSIONID,value=1ABAF39C37AD75BAE09435DE45239AEA,domain=null,path=null
这份代码应该是正确的了 :-)
/**
* setCookie
* 如果多次调用,每次传入不同的sName,就可设置多个cookie的值
*/
function setCookie(sName,sValue,dExpiry){
var sNameString = sName +"="+escape(sValue);
var sExpiryString = (dExpiry == null)?"":";expires =" + dExpiry.toGMTString();
document.cookie = sNameString + sExpiryString ;
}
// Retrieve the value of the cookie with the specified name.
function getCookie(sName){
// cookies are separated by semicolons
var aCookie = document.cookie.split(";");
for (var i=0; i < aCookie.length; i++){
// a name/value pair (a crumb) is separated by an equal sign
var aCrumb = aCookie[i].split("=");
if (sName == aCrumb[0])
return unescape(aCrumb[1]);
}
// a cookie with the requested name does not exist
return null;
}
// Delete the cookie with the specified name.
function delCookie(sName){
var sValue="delete";
document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}
分享到:
相关推荐
它执行以下操作: 删除所有x-frame-options响应标头删除所有content-security-policy响应标头更改所有set-cookie响应标头以设置SameSite=None (这也需要为cookie设置Secure标志) 如果sec-fetch-dest请求标头等于...
golang单点登录系统(go-sso) 这是一个基于Go语言开发的单点登录系统,实现手机号注册,手机号+验证码登录,手机号+密码登录,账号登出等功能,用户认证采用cookie和jwt两种方式。方法已提供,仅需根据短信通道提供...
SSO通过将用户登录信息映射到浏览器cookie中,解决其他应用免登获取用户会话的问题。 为什么需要SSO 开放平台业务本身不需要SSO,但是如果平台的普通用户也可以在申请后成为一个应用开发者,那么就需要将平台加入到...
但是有一个限制,那两台部署应用(demo1、demo2)的 机器的域名需要相同,这在后面的章节中会解释到cookie和domain的关系以及如何制作跨域的WEB-SSO 解压缩SSOAuth.zip文件,在/WEB-INF/下的web.xml中请修改...
Chart图形、Cookie&Session&Cache、CSV文件转换、DEncrypt、FTP操作类、JS、Json、Mime、PDF、Properties、ResourceManager、XML操作类、弹出消息类、导出Excel、分词辅助类、汉字转拼音、配置文件操作类、日历、...
Cache、CSV文件转换、DEncrypt、FTP操作类、JS、Json、Mime、PDF、Properties、ResourceManager、XML操作类、弹出消息类、导出Excel、分词辅助...表达式、字符串、SSO、SEO、过滤器、C#连接linux终端等等几十个工具操作类.
、CSV文件转换、DEncrypt、FTP操作类、JS、Json、Mime、PDF、Properties、ResourceManager、XML操作类、弹出消息类、导出Excel、分词辅助类、...表达式、字符串、SSO、SEO、过滤器、C#连接linux终端等等几十个工具操作类.
—————————————————–操作———————————————————– 1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies) 代码如下: #region##添加cookeis /// /// ...
您需要设置一个具有公共域的特殊cookie,其中包含带有用户数据的JSON Web令牌。 如果足够,此插件将处理其余操作(用户注册/登录)。 这与SSO有什么关系? 单一登录允许用户通过第三方服务登录NodeBB。 尽管存在...
python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 ...16 Model操作之select_related以及...
ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+...
但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。于是,就想到是不是可以在一个系统登录,其他系统就不用登录了呢?...
Moodle 注重全 面的安全性,所有的表单都被检查,数据都被校验, cookie 是被加密的。用户注册时,通 过电子邮件进行首次登陆, 且同一个邮件地址不能在同一门课程中进行重复注册, 所有这些, 都使得 Moodle 的...
3.2.1 Cookie 121 3.2.2 HtmlInputHidden隐藏域 123 3.2.3 ViewState 123 3.2.4 查询字符串Request 124 3.2.5 Aplication对象 125 3.2.6 Session对象 125 3.2.7 示例项目:在线用户列表统计 128 3.3 服务器和客户端...
3.2.1 Cookie 121 3.2.2 HtmlInputHidden隐藏域 123 3.2.3 ViewState 123 3.2.4 查询字符串Request 124 3.2.5 Aplication对象 125 3.2.6 Session对象 125 3.2.7 示例项目:在线用户列表统计 128 3.3 服务器和客户端...
证并不容易每个ASP页面都需要代码来检验用户身份验证cookie并证明用户身份得到了确定在ASP.NET中身份 验证和授权比在传统ASP中要容易多了在ASP.NET中有 3种形式身份验证:Windows验证、Passport验证和 Forms验证 ...