zoukankan      html  css  js  c++  java
  • 通过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     }
  • 相关阅读:
    octotree神器 For Github and GitLab 火狐插件
    实用篇如何使用github(本地、远程)满足基本需求
    PPA(Personal Package Archives)简介、兴起、使用
    Sourse Insight使用过程中的常使用功能简介
    Sourse Insight使用教程及常见的问题解决办法
    github 遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts问题解决
    二叉查找树的C语言实现(一)
    初识内核链表
    container_of 和 offsetof 宏详解
    用双向链表实现一个栈
  • 原文地址:https://www.cnblogs.com/lzy-521/p/3457356.html
Copyright © 2011-2022 走看看