我只是想用ajax执行一个设置cookie的PHP文件,火狐里就是不行

2025-05-19 13:19:33
推荐回答(5个)
回答(1):

你这段程序有一些问题。

首先,xmlhttp 这个用全局变量很不妥。
你可以在 request 中 return 一个值,用的时候
xmlhttp = request();

其实,Ajax 默认是异步调用的,你所说的“取到cookie值”要看“取”的时候 get 请求是不是已经返回来了。

还有就是页面有 cache (缓存),你用 Firefox 刷新一下页面看看或许就已经有了。至于怎样避免缓存,那又是另外的问题了。

回答(2):

var xmlHttp;
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
} catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}return xmlHttp;
}
试试这个,因为你只考虑了IE浏览器,没有考虑其他浏览器兼容
还有,JS可以操作cookie的,没必要到php文件里去做,这样浪费效率。
试试这三个函数
function setCookie()
{

if(arguments.length==2)
{
var name=arguments[0];
var value=arguments[1];
var Days = 1;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000/2);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
}
else if(arguments.length==3)
{
var name=arguments[0];
var value=arguments[1];
var Seconds = arguments[2];
var exp = new Date();
exp.setTime(exp.getTime() + Seconds*24*60*60*1000/2);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
}
else
{
alert("操作错误!");
}
}
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;

}
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString()+";path=/";
}
分别是设置,获取,删除,看得懂吧?

回答(3):

  您好!很高兴为您答疑!

  火狐下您可以安装Firebug检查页面代码,它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

回答(4):

用JQ的AJAX了,兼容性完全不用考虑,代码也就一行

$.ajax();

会不会是setcookie设置Cookie目录的问题,尝试下!

最好把获取Cookie的JS发出来,因为JS也要跑兼容!

回答(5):

兼容性问题 ,下个fire bug 调试下