Flex 4.0解决Session问题的山寨版方法

  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 4.0解决Session问题的山寨版方法)