凡客诚品的跨域获取cookies方法
没事干的时候把凡客的首页扣下来研究了一下,在凡客的js代码里发现了一种跨域获取cookies的方法,基本原理是凡客的server端提供一个页面输出cookies字符串,client端采用jsonp的格式获取该cookies字符串。
程序演示
你也可以在自己的机器上试下,不过你首先得在凡客上有帐号,这样才能看到效果。
下面一段是凡客中一个跨域获取cookies的函数:
function setWelcome() { $.getScript("http://my.vancl.com/Usercenter/GetUserName.ashx", function() { if (typeof (data) != undefined && typeof (data) != "undefined" && data != "") { $("#login").html("<a class='top' href='https://login.vancl.com/login/UserLoginOut.aspx' target='_parent' >退出登录</a>"); $("#welcome").html("您好,<a class='top' href='http://my.vancl.com/' >" + data + "</a>。<a class='top' href='https://login.vancl.com/Login/UserLoginOut.aspx?'" + window.location.href + " target='_parent' >退出登录</a>"); } else { return; } } );
本页的演示效果所用代码如下:
<div style="text-indent:2em;"><input type="button" value="运行" id="render" /></div> <script type="text/javascript"> // <![CDATA[ document.getElementById('render').onclick=function(){ $.getScript("http://my.vancl.com/Usercenter/GetUserName.ashx", function() { if (typeof (data) != undefined && typeof (data) != "undefined" && data != "") { alert("你在凡客登录的用户名是:"+data); } else { alert("你还没有登录凡客!"); return; } }); } // ]]> </script>
在这里记录下~