• 通过js获取cookie的实例及简单分析


    今天碰到一个在firefox下swfupload 上传时session不一致问题

    在一个项目遇到多文件上传时,firefox下,服务器端的session获取不一致问题。

    解决办法:

    解决办法:将sessionID传过去!

    js里:

    url='/fileupload/main/fileuploadnew?'+document.cookie.split("; ")[0]

    document.cookie.split("; ")[0]为sessionid,为什么这么写,看下文。

    java后台:

    String sessionId = request.getParameter("sessionid");

    随之而来的问题是如何通过javascript获取cookie里面的一个值。 那么我们先来看看cookie到底长什么样子呢? 直接在浏览器地址栏输入: javascript:alert(document.cookie); 回车。(这行代码的意思是,让浏览器执行javascript语句: alert(document.cookie);) 结果是:uin=webryan; sessionid=10293123834; pgv_send=1; cur_page=index 这个样子。 注意:1.开始没有空格,2.分号后又空格 3.最后没有分号。那么我们获取cookie的方法就比较明确了。。

    一种是用document.cookie.split(“; “)的方式把字符串分割成几个段,然后遍历整个数组。 把每个数组单元等号左边的和name对比是否相等,相等则取等号右边的值。

     1 function getCookie(name){
     2   var arr = document.cookie.split("; ");
     3   for(var i=0,len=arr.length;i<len;i++){
     4     var item = arr[i].split("=");
     5     if(item[0]==name){
     6       return item[1]; 
     7     }   
     8   }     
     9 return"";
    10 } 
    function getCookie(name){    
           var arr = document.cookie.split("; ");   
           for(var i=0,len=arr.length;i<len;i++){     
                  var item = arr[i].split("=");    
                  if(item[0]==name){    
                      return item[1];  
             }     
         }     
            return""; 
     }  
     
     1 function getCookie(name){
     2     var arr = document.cookie.split("; ");
     3     for(var i=0,len=arr.length;i<len;i++){
     4         var item = arr[i].split("=");
     5         if(item[0]==name){
     6              return item[1];
     7         }
     8     }
     9     return "";
    10 }

    第二种就是直接在字符串中搜索关键字。由于分号有空格,加上防止出现搜索cookie name为“str”的value是,有一个test_str的cookie名称。这里我们先进行一次过滤。 然后在找到 ;str的位置,这样就不会出问题。具体情况如下

     1 function getCookie(name){
     2     var value="";
     3     var cookie = ";"+document.cookie.replace(/;s+/g,";")+";"
     4     var pos = cookie.indexOf(";"+name+"=");
     5     if(pos>-1){ 
     6         var start = cookie.indexOf("=",pos);
     7         var end = cookie.indexOf(";",start);
     8         value = unescape(cookie.substring(start+1,end)); 
     9     } 
    10     return value; 
    11 } 
     1 function getCookie(name){  
     2         var value="";  
     3         var cookie = ";"+document.cookie.replace(/;s+/g,";")+";"  
     4         var pos = cookie.indexOf(";"+name+"=");  
     5         if(pos>-1){  
     6             var start = cookie.indexOf("=",pos);  
     7             var end = cookie.indexOf(";",start);  
     8             value = unescape(cookie.substring(start+1,end));  
     9         }  
    10          return value;  
    11   }  
     1 function getCookie(name){
     2         var value="";
     3         var cookie = ";"+document.cookie.replace(/;s+/g,";")+";"
     4         var pos = cookie.indexOf(";"+name+"=");
     5         if(pos>-1){
     6             var start = cookie.indexOf("=",pos);
     7             var end = cookie.indexOf(";",start);
     8             value = unescape(cookie.substring(start+1,end));
     9         }
    10         return value;
    11     }
  • 相关阅读:
    TinyOS功率编程指南
    深度学习入门资料
    通信常识
    CTF入门
    前端开发工具之服务器选择
    Spring
    NoSQL -- MongoDB
    NoSQL -- Redis
    mysql alter table修改表结构添加多个字段的几个写法
    gongle 访问助手安装
  • 原文地址:https://www.cnblogs.com/lzy-521/p/3457356.html
Copyright © 2020-2023  润新知