一般js是不跨域的,但是有的时候我们得通过跨域让cookie共享,
所以,我们就可以上用jquery来做了.
客户端如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <script> //重要,不能删除 function addCookie(objName,objValue,objHours){ //添加cookie var str = objName + "=" + escape(objValue); if (objHours > 0){ //为0时不设定过期时间,浏览器关闭时cookie自动消失 var date = new Date(); var ms = objHours*3600*1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toGMTString(); } document.cookie = str; } $.ajax({ type: "get" , async: false , url: "" , dataType: "jsonp" , jsonp: "callback" , //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback: "jsonpscall" , //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function (jsons){ addCookie( "mzlid" ,jsons.mzlid,20) }, error: function (){ alert( 'fail' ); } }); </script> |
在请求那个url的时候,我们输出一个json格式的字符串,
如下:
1 | jsonpscall({ 'mzlid' : '99b5879d008e53620d96931f5617d72e26182' }) |
这个内容可以是在后台动态生成。
调用成功的时候,我们再 加cookie值,这样,cookie就和目标域中的cookie值一样了.
http://www.jqyui.com/faq/list.asp?Unid=392