答灬案

博客园 首页 新随笔 联系 订阅 管理

今天碰到一个在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     }

 

posted on 2013-12-04 12:54  答灬案  阅读(1046)  评论(0编辑  收藏  举报