通过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对比是否相等,相等则取等号右边的值。
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;
}
通过js获取cookie的实例及简单分析的更多相关文章
- 转 通过js获取cookie的实例及简单分析
今天review新人写的javascript代码的时候发现了很多的问题.这里以function getCookie(name){}为例. 其中比较典型的一个问题就是如何通过javascript获取co ...
- 简单利用XSS获取Cookie信息实例演示
简单利用XSS获取Cookie信息实例演示 首先要找到一个有XXS的站,这里就不整什么大站了,谷歌一下inurl:'Product.asp?BigClassName',搜出来的命中率也比较高.随便 ...
- js获取cookie
js获取cookie 之前用jQuery.cookie来获取cookie,虽然简单,但是项目上又多引用了一个插件,总觉得不太好,下面是我封装的js原生获取cookie的函数. function get ...
- node.js获取cookie
node.js 获取cookie var Cookies ={}; if (req.headers.cookie != null) { req.headers.cookie.split(';').fo ...
- js获取cookie数据并发送给服务端
js获取cookie数据并发送给服务端 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- js获取cookie中存储的值
最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...
- js获取cookie提取用户名asp.net+html
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一 ...
- js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : functi ...
- 用js获取cookie
//获取cookiefunction cookie_email(cookie_name){ var cookiestr = document.cookie; if (cookiestr.length ...
随机推荐
- 条件随机场(CRF) - 1 - 简介(转载)
转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html 首先我们先弄懂什么是"条件随机场",然后再探索其详 ...
- Java笔记8-抽象接口
高级特性部分: 抽象(abstract) 接口(interface) 提纲: 抽象类的定义和使用 模板设计模式的使用 接口的定义和使用 回调函数 区别抽象类和接口的异同 软件设计原则--------- ...
- 初步认知java的方法
1.正确区分函数和方法: 面向对象的语言叫做方法,面向过程的语言叫做函数,两者的意义是一样的,只是叫法不同.java是面向对象的语言,所以用方法. 2.方法的定义: 就是有名字的代码段 3.方法的目的 ...
- lame边录音边转换
文章出处:http://big-joe.blog.sohu.com/88902836.html void CViewTFreqList::RecFileInit(LPCTSTR sFileName, ...
- SSH基于Hibernate eventListener 事件侦听器的操作日志自动保存到数据库
在spring xml配置文件中添加配置,包含:model.listener 在model中增加需要写入数据库对应表的model 在auditLog.xml配置文件中配置自己项目中,需要进行日志记录的 ...
- Linux-磁盘及网络IO工作方式解析
PIO与DMA 有必要简单地说说慢速I/O设备和内存之间的数据传输方式. PIO我们拿磁盘来说,很早以前,磁盘和内存之间的数据传输是需要CPU控制的,也就是说如果我们读取磁盘文件到内存中,数据要经过C ...
- 【转】深入 Docker:容器和镜像
在本专栏往期的 Flux7 系列教程 里,我们已经简单地探讨了 Docker 的基本操作.而在那篇教程中,我们一直是简单地将容器当成是"正在运行的镜像",并没有深入地区分镜像和容器 ...
- 关于eclipse保存代码很慢,提示the user operation is waiting的问题
关于eclipse保存代码很慢,提示the user operation is waiting的问题 首先 去掉 project - build Automaticlly 然后 project-> ...
- Mysql与Oracle区别
1.Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2.Oracle支持大并发,大访问量 ...
- jquey easyui 常用方法
jquey easyui 常用方法 2015-05-31 13:02 4473人阅读 评论(0) 收藏 举报 版本:1.4.2 一.easyui -textbox: 1.去空格: $('#tt1'). ...