快速业务通道

有关flash无法读取FireFox中Cookie的Bug解决方法

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

关于这个Bug目前有一个变通的解决方法:
  1. /**
  2. *@authorKinglong
  3. *@version0.1
  4. */
  5. packageproject.util{
  6. importcom.klstudio.util.StringUtil;
  7. importFlash.external.ExternalInterface;
  8. publicclassUploadUtil{
  9. publicfunctionUploadUtil(){
  10. }
  11. publicstaticfunctionfixNoIEBug(url:String):String{
  12. varindex:int=url.indexOf("?");
  13. url+=(index==-1)?"?ie=":"&ie=";
  14. url+=(isIE())?"1":"0"+getCookies();
  15. returnurl;
  16. }
  17. publicstaticfunctionisIE():Boolean{
  18. if(!ExternalInterface.available){
  19. returntrue;
  20. }
  21. returnExternalInterface.call("navigator.appVersion.indexOf","MSIE")!=-1;
  22. }
  23. publicstaticfunctiongetCookies():String{
  24. if(!ExternalInterface.available){
  25. return"&c_userid=&c_password=";
  26. }
  27. varresult:String="";
  28. varcookieStr:String=ExternalInterface.call("function(){returndocument.cookie;}");
  29. varcookies:Array=cookieStr.split('';'');
  30. varcount:uint=0;
  31. for(vari:uint=0;i<cookies.length;i++){
  32. varitems:Array=cookies[i].split(''='');
  33. if(StringUtil.trim(items[0])=="c_userid"||StringUtil.trim(items[0])=="c_password"){
  34. result+="&"+StringUtil.trim(items[0])+"="+StringUtil.trim(items[1]);
  35. count++;
  36. }
  37. if(count>=2){
  38. break;
  39. }
  40. }
  41. returnresult;
  42. }
  43. }
  44. }

    看上面的代码就知道原理很简单,就是先判断是否为IE浏览器,如果是的话,服务端就通过正常的方式来读取Cookie值,否则的话,就通过客户端JS方法把cookie取到,然后再通过url传给服务端。
关键词:Cookie

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号