一般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
,
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