sso跨域写cookie的一段js脚本

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script>
  var setcookitarray = "";
  setcookitarray = "[\"http://passport.a.com/main/setCookie.do?domain=\",\"http://passport.a.com/main/setCookie/main/setCookie.do?domain=.b.cn\",\"http://passport.a.com/main/setCookie/main/setCookie.do?domain=.c.com\",\"http://passport.a.com/main/setCookie/main/setCookie.do?domain=.d.cn\"]";
  setcookitarray = eval(setcookitarray);
  var setcookitarrayln = setcookitarray.length;
  //alert(setcookitarrayln);
  var notifyurl_list=setcookitarray;
  var ll = setcookitarrayln;
  var params="yqVg1ennsNnxydEq4azcAP6TjhR90QCEUtB7[email protected][email protected]@@[email protected]@[email protected]@tJB12hNLIG4oW0eA==";
  var failuretime=2678400;
  var backurl="http://www.test.com";
  //alert("1111");

  loginALL(notifyurl_list, ll-1, backurl, params,failuretime);
  //alert("2222");
  function loginALL(notifyurl_list,num,backurl,params,failuretime) {
        var u = notifyurl_list[num];
		 alert("url:"+(num)+"-"+u);
        if (typeof u != "undefined") {
		    //alert("4444:"+notifyurl_list[num]);
            var url = notifyurl_list[num]+"&failuretime="+failuretime+"&val="+params;
			//alert("url:"+url);

			//动态生成script脚本标签执行url页面
			var login=request("loginScript"+num,url);
			num--;
            if (num < 0) {

                window.setTimeout(function() {
                    window.location.href = backurl;
                }, 2000);

            }
			else
			{
				loginALL(notifyurl_list, num, backurl, params,failuretime);
			}

        }
  }

  function request(id,url){
     oScript = document.getElementById(id);
     var head = document.getElementsByTagName("head").item(0);
     if (oScript) {
        head.removeChild(oScript);
     }
     oScript = document.createElement("script");
     oScript.setAttribute("src", url);
     oScript.setAttribute("id",id);
     oScript.setAttribute("type","text/javascript");
     oScript.setAttribute("language","javascript");
     head.appendChild(oScript);
     return oScript;
}

</script>

<body>

</body>

主要通过 递归调用 和 动态创建script标签来实现页面的调用。

				
时间: 2024-07-29 21:59:03

sso跨域写cookie的一段js脚本的相关文章

asp.net forms 表单验证 实现跨域共享cookie(即SSO,单点登录(在二级域名下))

1.前提: 需要做一个单点登录,使用asp.net自带的表单验证(FormsAuthentication) 配置文件怎么写,如下(基本的): <authentication mode="Forms"> <forms loginUrl="~/user/login" enableCrossAppRedirects="true" timeout="3600" name="qz.bbs" cook

利用javascript跨域访问cookie之广告推广

在上一篇<说一说javascript跨域和jsonp>中,利用JSONP进行了跨域的数据访问,利用JS本身的跨域能力在远端生成HTML结构的方式完成了一个小广告. 在实际应用中, 跨域使用天气预报组件可以使用上面的方式实现,另外一种常用的就是显示某些电商的广告,此广告中会滚动您访问过的产品或者关联想推介给你的产品. 比如在某个A网页中显示了两种广告: 某东的广告,里面显示的东西,都是访问过滴,并且加推了相关的东西 某宝的广告,基本一样呈现方式. 当访问某东某宝的商品时,会把信息放到cookie

淘宝如何跨域获取Cookie分析

淘宝如何跨域获取Cookie分析 最近在发现使用Taobao的时候的一个小细节,于是便萌发起了写这篇文章. 当我们在 www.taobao.com 中进行登录之后,然后直接切换到 www.tmall.com 域名下,发现www.tmall.com首页的最顶部马上显示成了”您好, andyfaces“,于是便对此处的实现机制进行分析. 首先,用户名应该是存储在cookie中的,于是在taobao.com的域名中用 firefox看到用户名确实是存储在 cookie, 而tmall.com中没有存储

跨域共享cookie

1. JSP中Cookie的读写 Cookie的本质是一个键值对,当浏览器访问web服务器的时候写入在客户端机器上,里面记录一些信息.Cookie还有一些附加信息,比如域名.有效时间.注释等等. 下面是一个jsp中写入读取Cookie的测试:在顶级域名中写入Cookie,在子域名中读取,目的是实现一个分布系统的单点登录. 两个jsp中读写代码如下: 写入: <% Cookie cookie = newCookie("write","cookie_write")

跨域带cookie失效的解决方案

在webpack的tableproxy那儿配置完跨域以后,想给cookie添加domain以便请求的时候带上cookie domain为localhost,cookie不会失效,但是一但改成baidu.com的时候,就失效了,Storage的cookie没掉了. 解决跨域带cookie方案如下: 修改host(windows版)目的:这样就可以去掉proxytable这个转发层了(由express服务器代理的)C:\Windows\System32\drivers\etcwin10: hosts

AJAX请求和跨域请求详解(原生JS、Jquery)

一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 本博客实验环境: python:2.7.11 web框架:tonado jquery:2.1.1 二.“伪”AJAX 由于

简单设置,解决使用webpack前后端跨域发送cookie的问题

最近用vue来做项目,用webpack来做前端自动化构建.webpack-dev-server会在本地搭建一个服务器,在和后端调试的时候,就会涉及到跨域的问题. 刚开始时,没有用vue-cli来构建项目,而是参考了github上的vue-vueRouter-webpack来构建.看网上的资料,vue-cli可以通过配置代理来解决跨域的问题: proxyTable: { '/list': { target: 'http://api.xxxxxxxx.com', changeOrigin: true

ASP.NET Core Web API 跨域(CORS) Cookie问题

身为一个Web API,处理来自跨域不同源的请求,是一件十分合理的事情. 先上已有的文章,快速复制粘贴,启用CORS: Microsoft:启用 ASP.NET Core 中的跨域请求 (CORS) ASP.NET Core 配置跨域(CORS) 如果按照以上文章,一步一步操作,你会发现,虽然能跨域请求了,但是即使客户端开了(xhr.withCredentials = true)也无法将Cookie发送给API. 关于AllowAnyOrigin 这是因为请求的首部中携带了 Cookie 信息,

使用JSONP彻底解决Ajax跨域访问Cookie Session的方案

最近做开发时要把图片文件放到另外一台服务器上(另外一个域名),因为这样分布式存放,网站打开速度会快很多.而我采用AJAX获取图片服务器上某用户的图片时遇到了问题,按照通常的方式无法获取信息,得到的Cookie都是null,后来想到浏览器出于安全考虑JavaScript和iframe不能跨域访问,那我们就要考虑使用其他途径来完成了,捣鼓了2天终于找到了解决方案,我使用JSONP来解决,请看. JS代码: $.ajax({ type: "get", url: "http://ww