cookie 跨域访问

废话不知道该说些什么。。。先看代码吧。

 1 cookie 是浏览器保存在用户计算机上的少量数据
 2 
 3 //读取cookie
 4 function getCookie(name) {
 5     var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
 6     if (arr = document.cookie.match(reg)) {
 7         return decodeURI(arr[2]);
 8     } else {
 9         return null;
10     }
11 };
12 
13 // delCookie("userName");
14 
15 
16 //设置cookie 值与过期时间
17 function setCookie(name, value, time) {
18     if (time) {
19         var setExp = gerExpTiem(time);
20         var exp = new Date();
21         exp.setTime(exp.getTime() + setExp);
22         document.cookie = name + "=" + encodeURI(value) + ";expires=" + exp.toUTCString();
23     } else {
24         document.cookie = name + "=" + encodeURI(value);
25     }
26 
27 };
28 
29 //删除cookie
30 function delCookie(name) {
31     var exp = new Date();
32     exp.setTime(exp.getTime() - 1);
33     var cval = getCookie(name);
34 
35     if (cval != null) {
36         document.cookie = name + "=" + cval + ";expires=" + exp.toUTCString();
37     }
38 };
39 
40 //获得过期时间 s10 ,h10 ,d10 s秒,h小时,d天数
41 function gerExpTiem(time) {
42     var timeType = time.substring(0, 1);
43     var _setTime = time.substring(1, time.length);
44     if (timeType == "s") {
45         return _setTime * 1000;
46     } else if (timeType == "h") {
47         return _setTime * 60 * 60 * 1000;
48     } else if (timeType == "d") {
49         return _setTime * 24 * 60 * 60 * 1000;
50     }
51 };

以上是对cookie 进行操作(添加,删除,获取) 网上大多例子都是一样的,本人也是参考的,大家可参考。。。

 

接下来是重点啦

  

cookie域

设置域:domain=siteDomain

这个主要用在同域的情况下共享一个cookie,
例如 "www.taobao.com" 与 "ued.taobao.com"
两者是共享一个域名"taobao.com",
我们如果想让 "www.taobao.com" 下的cookie被 "ued.taobao.com"
访问,那么就需要把path属性设置为 "/",
并且设置 cookie 的domain-->document.cookie='cookieName=cookieValue;expires=expireDate;path=/;domain=taobao.com'。

  

我比较懒,这是copy 别人的,是在用一个域下(二级域名),

如果是:www.baidu.com 与 www.taobao.com 这样是不能跨域访问cookie的。

 

服务器端添加响应头

<?php  header('Access-Control-Allow-Credentials:true'); ?>

  

 

客户端添加

$.ajax({
type: method,
url: reqObj.testAddress+reqName,
dataType: "json",
crossDomain: true,
xhrFields: { //注意添加红色部分
withCredentials: true
},
timeout : reqObj.set_Timeout,
success: succCallback,
error: errorCallback
});

  

参考来源:

http://www.cnblogs.com/MyRobotDream/p/3543402.html

http://www.111cn.net/wy/html5/75509.htm

posted on 2016-01-08 13:48  爱拼才有钱  阅读(396)  评论(0编辑  收藏  举报

导航