首页  ·  知识 ·  前端
无法读取FireFox中Cookie的Bug解决方法
佚名  本站原创  综合  编辑:dezai  图片来源:网络
关于这个Bug目前有一个变通的解决方法: /** * @author Kinglong * @version 0.1 */ package project.util { import com.
关于这个Bug目前有一个变通的解决方法:

/**
* @author Kinglong
* @version 0.1
*/

package project.util {

import com.klstudio.util.StringUtil;
import flash.external.ExternalInterface;

public class UploadUtil{

public function UploadUtil() {
}

public static function fixNoIEBug(url:String):String {
var index:int = url.indexOf("?");
url += (index == -1)?"?ie=":"&ie=";
url += (isIE())?"1":"0" + getCookies();
return url;
}

public static function isIE():Boolean {
if (!ExternalInterface.available) {
return true;
}
return ExternalInterface.call("navigator.appVersion.indexOf","MSIE") != -1;
}

public static function getCookies():String {
if (!ExternalInterface.available) {
return "&c_userid=&c_password=";
}
var result:String = "";
var cookieStr:String = ExternalInterface.call("function(){return documents.cookie;}");
var cookies:Array = cookieStr.split(';');
var count:uint = 0;
for (var i:uint = 0; i < cookies.length; i++ ) {
var items: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;
}
}
return result;
}

}

}

看上面的代码就知道原理很简单,就是先判断是否为IE浏览器,如果是的话,服务端就通过正常的方式来读取Cookie值,否则的话,就通过客户端JS方法把cookie取到,然后再通过url传给服务端。 本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的