有关flash无法读取FireFox中Cookie的Bug解决方法
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
|
关于这个Bug目前有一个变通的解决方法:
- /**
- *@authorKinglong
- *@version0.1
- */
-
- packageproject.util{
-
- importcom.klstudio.util.StringUtil;
- importFlash.external.ExternalInterface;
-
- publicclassUploadUtil{
-
- publicfunctionUploadUtil(){
- }
-
- publicstaticfunctionfixNoIEBug(url:String):String{
- varindex:int=url.indexOf("?");
- url+=(index==-1)?"?ie=":"&ie=";
- url+=(isIE())?"1":"0"+getCookies();
- returnurl;
- }
-
- publicstaticfunctionisIE():Boolean{
- if(!ExternalInterface.available){
- returntrue;
- }
- returnExternalInterface.call("navigator.appVersion.indexOf","MSIE")!=-1;
- }
-
- publicstaticfunctiongetCookies():String{
- if(!ExternalInterface.available){
- return"&c_userid=&c_password=";
- }
- varresult:String="";
- varcookieStr:String=ExternalInterface.call("function(){returndocument.cookie;}");
- varcookies:Array=cookieStr.split('';'');
- varcount:uint=0;
- for(vari:uint=0;i<cookies.length;i++){
- varitems:Array=cookies[i].split(''='');
- if(StringUtil.trim(items[0])=="c_userid"||StringUtil.trim(items[0])=="c_password"){
- result+="&"+StringUtil.trim(items[0])+"="+StringUtil.trim(items[1]);
- count++;
- }
- if(count>=2){
- break;
- }
- }
- returnresult;
- }
-
- }
-
- }
看上面的代码就知道原理很简单,就是先判断是否为IE浏览器,如果是的话,服务端就通过正常的方式来读取Cookie值,否则的话,就通过客户端JS方法把cookie取到,然后再通过url传给服务端。
关键词:Cookie |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|