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

  • 相关阅读:
    Mastering Web Application Development with AngularJS 读书笔记-前记
    通过信息系统项目管理师-我的备考经验
    通过系统集成项目管理工程师考试-我的备考分享
    即将翻译 Building The New Financial Times Web App
    CSS3:flex布局应用
    前端性能利器——dynatrace ajax edition
    SIMD---AVX系列
    DirectSound---捕获音频、Qml/C++ 集成交互
    SIMD---SSE系列及效率对比
    SIMD---MMX代码优化
  • 原文地址:https://www.cnblogs.com/congxueda/p/5112985.html
Copyright © 2011-2022 走看看