今天碰到一个在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对比是否相等,相等则取等号右边的值。

 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"";
}
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"";
}
 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 "";
}

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

 function getCookie(name){
var value="";
var cookie = ";"+document.cookie.replace(/;\s+/g,";")+";"
var pos = cookie.indexOf(";"+name+"=");
if(pos>-1){
var start = cookie.indexOf("=",pos);
var end = cookie.indexOf(";",start);
value = unescape(cookie.substring(start+1,end));
}
return value;
}
 function getCookie(name){
var value="";
var cookie = ";"+document.cookie.replace(/;\s+/g,";")+";"
var pos = cookie.indexOf(";"+name+"=");
if(pos>-1){
var start = cookie.indexOf("=",pos);
var end = cookie.indexOf(";",start);
value = unescape(cookie.substring(start+1,end));
}
return value;
}
 function getCookie(name){
var value="";
var cookie = ";"+document.cookie.replace(/;\s+/g,";")+";"
var pos = cookie.indexOf(";"+name+"=");
if(pos>-1){
var start = cookie.indexOf("=",pos);
var end = cookie.indexOf(";",start);
value = unescape(cookie.substring(start+1,end));
}
return value;
}

最新文章

  1. 自动完成--autoComplete插件
  2. GoLang文件增删遍历基本操作
  3. Ext.Ajax中scope的作用
  4. Linux下实现流水灯等功能的LED驱动代码及测试实例
  5. 遇到的Fragment中使用setAdapter()设置ListView报空指针解决方案
  6. JS函数的四种调用模式
  7. HDU4551
  8. windows服务怎么向应用程序发消息(部署在同一台机,非SCOKET)
  9. vue.js中使用Axios
  10. vue的高阶组件
  11. [JVM-1]Java运行时数据区域
  12. CSS在线字体库,外部字体的引用方法@font-face
  13. form提交xml文件
  14. list中null或者空的区别
  15. centos 安装 TortoiseSVN svn 客户端
  16. NOIP2018 RP++
  17. iOS-----使用AddressBookUI管理联系人
  18. 匹配yyyy-mm-dd日期格式的的正则表达式[转]
  19. git使用教程1-本地代码上传到github
  20. linux grub启动密码验证设置

热门文章

  1. Spring可以将简单的组件配置
  2. relative
  3. LeetCode 【31. Next Permutation】
  4. Python 常用函数
  5. linux 删除进程的多种方法
  6. centos nginx server_name 配置域名访问规则
  7. Discuz模拟批量上传附件发帖
  8. java并发编程系列
  9. MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql
  10. Lua学习----Lua基础数据类型