zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    pat 甲级 1065. A+B and C (64bit) (20)
    pat 甲级 1064. Complete Binary Search Tree (30)
    pat 甲级 1010. Radix (25)
    pat 甲级 1009. Product of Polynomials (25)
    pat 甲级 1056. Mice and Rice (25)
    pat 甲级 1078. Hashing (25)
    pat 甲级 1080. Graduate Admission (30)
    pat 甲级 团体天梯 L3-004. 肿瘤诊断
    pat 甲级 1099. Build A Binary Search Tree (30)
    Codeforce 672B. Different is Good
  • 原文地址:https://www.cnblogs.com/congxueda/p/5112985.html
Copyright © 2011-2022 走看看