172009
 

这个bug,我整整折腾了2两天,目前为止还没找到一个好的解决方案。
好多人都遇到过,包括圣叹KingLongVSky 看来好多人都被这个该死的Bug QJ过了。
普遍的解决方法是使用JS获取FireFox中的Cookie,然后设置URLRequest中的data属性作为post方式传递过去,服务器读取Request对象中的POST的数据(不同的语言处理方式各不相同)进行校验,但是淘宝的校验只能使用Cookie验证,用POST传过去识别不了。而为了一个Flash改动验证系统基本不可能。

设想是使用一个代理页。

Flash通过post方式把cookie的数据传过去,代理页再模拟提交一次。这样开发说会遇到安全问题。遂罢!

至今无解,求解……

———————2009年9月18日 Update-———————

这个问题通过Flash本身解决好像已经基本无望了。

想更改URLRequestHeader因为安全问题,被罢掉。

还有另外一种方法是,当用户的浏览器为非IE时,在Flash的上层覆盖一个HTML的<input type=”file”/>标签,通过HTML的上传机制解决,可非常无奈的是,我的Flash要输入中文,必定使得wmode要为window,所以想要在Flash上层覆盖一个<input type=”file”/>标签 这种方案也被排除了。起初还想到另外一个方案就是通过代码模拟点击一个隐藏的<input type=”file”/>标签,非常郁闷的是,因为安全限制,这个也不可能。

因此,目前来说还没找到一个更好的方法去解决或者绕过这个Bug

  5 Responses to “非IE浏览器下Flash Player的Cookie/Session丢失Bug”

  1. 我来留个个脚印

  2. URLLoader有没有这个问题?
    要不然用URLLoader模拟上传…
    就是读取文件的时候需要fp10,另外进度显示也是个问题…..

  3. @L4CD,用URLLoader提交数据时没这个问题。我也想过用FP10,只是为了照顾那20%+的用户,用不起来呀,毕竟淘宝的用户那么多……

  4. 如果开发的时候有一套js的SDK也蛮好的,数据获取都通过js来进行,不知道这样能绕过不?

  5. @Tsung.W 其实用Flash去做这些东西, 真的不错。

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>