Ajax和IE缓存。网上能找到的方法全试了,就是不行。

CIT 2007-12-29 02:06:24
网上找到的方法

url接上随机数字或者日期
客户端禁止缓存
服务器端禁止缓存

都无效

firefox2.0 IE7.0 apache2.0 PHP5.2.5 mysql 5.0
firefox一切正常,就是IE只能发送一次请求,除非刷新页面才能再发送一次。

以下是javascirpt的代码
//ajax创建
function InitAjax()
{
var ajax=false;
  if(window.ActiveXObject){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.ActiveXObject){
ajax = new ActiveXObject("Msxml2.XMLHTTP.4.0");
}else if(window.ActiveXObject){
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}else if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}
  return ajax;
}
//生成ajax对象
var ajax = InitAjax();
//call函数
function RegUserID()
{
var str = document.getElementById("f_UserID").value;
var div = document.getElementById("d_RegUserID");
if(!UserIDCheck(str))
{
div.innerHTML = "帐号格式非法";
return false;
}
else
{
var url = "bc/bc_useridcheck.php?UserID="+str+"&date="+new Date().getTime()+"&rand="+Math.random();
ajax.onreadystatechange = UserIDAjax;
var PostStr = "UserID="+str;
ajax.open("GET",url,true);
ajax.setRequestHeader("If-Modified-Since","0");
ajax.send(null);
}
}
//服务器端PHP页面
<?php
header("Cache-Control: no-cache, must-revalidate");
mb_http_input("utf-8");
mb_http_output("utf-8");

$path=dirname(__FILE__);
include_once $path.'/../../../oa/oa_db_general.php';
include_once $path.'/../../../oa/oa_db_result_operator.php';

$UserID = $_GET['UserID'];
$mydb = new OADBGeneral('cdtc');
$strsql = "select ID from userinfo where UserID='".$UserID."'";
$res = $mydb->ExecSQL($strsql);
$result = new OADBResultOperator($res);
$num = $result->GetRecordCount();
if($num == 0)
echo "1";
else
echo "0";
?>
...全文
470 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
l19861225q 2010-07-07
  • 打赏
  • 举报
回复
果然要再重新定义一次xmlHttp,虽然不知道为什么,不过帮了忙,谢。
dingo 2008-03-02
  • 打赏
  • 举报
回复
楼主怎么解决的?我好像也有同样的问题
yousite1 2007-12-31
  • 打赏
  • 举报
回复
根本不可能。
只要隨機數一項就夠了!!
var url = "bc/bc_useridcheck.php?UserID="+str + "&rand="+Math.random();


写这么多AJAX方面的,没见过用随机数还能访问到缓存里的东东的,楼主再确认一下!
CIT 2007-12-29
  • 打赏
  • 举报
回复
问题解决了!!!
原来每次都要对xmlhttprequest定义一次!!!
西安风影 2007-12-29
  • 打赏
  • 举报
回复
只保留
ajax.setRequestHeader("If-Modified-Since","0");


其他随机参数 日期 还有no-cache都删除掉 再尝试

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧