通过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     }

 

你可能感兴趣的:(cookie)