Flex 4.0解决Session问题的山寨版方法
2012-12-29 15:54
691 查看
Flex 4.0中好象不支持设置URLRequest请求头,弄了半天,都没有成功,据说之前的版本可以用,晕。
最后没有办法,只好想了一个山寨版的方法,来弥补Flex写的SWF不支持会话的问题。
首先,修改服务器Web容器获取Request对应会话的方法,让该方法同时支持从Cookie标题和Request对象取会话ID的功能,但优先处理来自Cookie的SessionID。
其次,由于document.cookie在FireFox等其他浏览器中支持不是太好,不知道为什么,取的时候总是空的,而且据说这个document.cookie还是取IE的永久Cookie,晕。后来决定不用,而采用程序来取。具体做法有点土:使用Ajax,在页面载入时向服务器请求当前Cookie值(也就是那个SessionID值),然后保存到一个变量中,之后再创建SWF,同时把这个Cookie作为参数传给SWF。
最后,在Flex中把这个Cookie作为请求参数添加到要请求的URL后面,再发送请求就OK了。这里就是要求Cookie字符串不要包含回车之类的特殊字符。
试了一下,兼容性还蛮好的。
最后没有办法,只好想了一个山寨版的方法,来弥补Flex写的SWF不支持会话的问题。
首先,修改服务器Web容器获取Request对应会话的方法,让该方法同时支持从Cookie标题和Request对象取会话ID的功能,但优先处理来自Cookie的SessionID。
其次,由于document.cookie在FireFox等其他浏览器中支持不是太好,不知道为什么,取的时候总是空的,而且据说这个document.cookie还是取IE的永久Cookie,晕。后来决定不用,而采用程序来取。具体做法有点土:使用Ajax,在页面载入时向服务器请求当前Cookie值(也就是那个SessionID值),然后保存到一个变量中,之后再创建SWF,同时把这个Cookie作为参数传给SWF。
最后,在Flex中把这个Cookie作为请求参数添加到要请求的URL后面,再发送请求就OK了。这里就是要求Cookie字符串不要包含回车之类的特殊字符。
试了一下,兼容性还蛮好的。
相关文章推荐
- FlexContext.getFlexSession()在servlet的doPost方法中不能用的问题解决
- 解决php中Cannot send session cache limiter 的问题的方法
- 安装flex碰到的一个问题及其解决方法(二)(原创)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- Flex 4.0 错误及解决方法
- 解决php中Cannot send session cache limiter 的问题的方法
- session冲突问题产生的原因和解决方法:
- flex URLRequest传中文参数到后台乱码问题解决方法
- uploadify在Firefox下丢失session问题的解决方法
- 跟踪 session 的执行,分析跟踪日志文件,解决问题的好方法
- 解决php中Cannot send session cache limiter 的问题的方法
- ThinkPHP框架实现session跨域问题的解决方法
- 解决php中Cannot send session cache limiter 的问题的方法
- Asp.net在ashx文件中处理Session问题解决方法
- 4.0 编译apk中无classes.dex问题解决方法
- flex 跨域访问 #2048: 安全沙箱冲突 问题解决方法
- vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离
- flex tomcat端口被占用的问题分析及解决方法
- Ubuntu11.04 sudo apt-get install flex无法更新的问题解决方法
- 安装flex碰到的一个问题及其解决方法(原创)