ajax.js
------------------------------------------------------------------
function createXMLHttpRequest()
{ var xmlHttp=null;
  if(window.ActiveXObject) 
   { 
     xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 
   } 
   else if(window.XMLHttpRequest) 
   { 
     xmlHttp = new XMLHttpRequest(); 
   } 
   return xmlHttp;
} function funadd() 

  
  ajax=createXMLHttpRequest(); 
  var url = "for.php";
  var f = document.myform;
  var u_id = f.uid.value;
  var u_Content = f.replyContent.value;
  var poststr = "uid="+u_id+"&u_Content="+u_Content+"&t="+Math.random()
  ajax.onreadystatechange = addChange;
  ajax.open("POST", url, true);
  ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  ajax.setRequestHeader("Cache-Control","no-cache"); 
  ajax.setRequestHeader("If-Modified-Since","0");
  ajax.send(poststr);}function addChange() 
{
  if (ajax.readyState == 4) 
{
           if(ajax.status == 200||ajax.status == 0) 
              { 
                 document.getElementById('msg').innerHTML = ajax.responseText;
     } 
     else
                {
alert("Sorry,服务器繁忙,请刷新页面稍后再试!");
       }
 }
}
/--------------------------------------------------------------------------------
for.php<?php
header('Content-Type:text/html;charset=utf-8');
header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
....................................?>问题:ie下插入数据有时成功 有时失败 特别是前两次基本失败 只有刷新才能显示数据 其它浏览器没有问题 这明显是ie的缓存问题 搞了一星期多都搞不定 精神接近崩溃 就差砸电脑了 望赐教.谢谢!

解决方案 »

  1.   

    var ajax=null;
    //这里漏了function funadd()  
    {  
       
      ajax=createXMLHttpRequest();  
      var url = "for.php";
       var f = document.myform;
       var u_id = f.uid.value;
       var u_Content = f.replyContent.value;
       var poststr = "uid="+u_id+"&u_Content="+u_Content+"&t="+Math.random()
       ajax.onreadystatechange = addChange;
       ajax.open("POST", url, true);
       ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
       ajax.setRequestHeader("Cache-Control","no-cache");  
      ajax.setRequestHeader("If-Modified-Since","0");
       ajax.send(poststr);}
      

  2.   

    用jquery 吧 一句代码的事情...
      

  3.   

    用jquery 吧 一句代码的事情...
    ------------------------------------------------------
    貌似不是答案 想想也有道理 我很纠结啊
      

  4.   

    Math.random()*1000000
    请求URL后面的随机数改成这个
      

  5.   

    Math.random()*1000000
    加上这个也不行 谢谢各位的热心回答 现在呈现一个规律 第一次插入数据页面不能显示 第二次插入数据显示第一次的数据 第三次插入数据直接把第二次的数据覆盖掉了 从第四次插入数据开始显示正常
    下午看了看jquery 实在不行只能用改改看 不过放弃ajax太可惜了 这个刚摸着一点门道
      

  6.   

    版主说自由,自由值几个钱啊,按我的理解,你精通一门还不如熟练多门技术,艺多不压身啊,jquery是一门
    必修的技术,按楼主和版主的意思,貌似选择jquery是不得已而为之的,
      

  7.   

    var url = "for.php";
    随机参数加到url后边;
      

  8.   

    no, no, no, 基于当时发明js的人思想上受限制, 所以设计出这么烂的语法, 
    如果是今天, 设计js的人知道jquery如此写起来是这么简单, 肯定后悔当初为什么自己设计js这门语言时要把语法弄得这么复杂。语言这种东西是人为的, 基于设计者的意识, 但可以写起来很优雅, 也可以写起来很烂, 像js中的xml, 当初设计这个没考虑到今天的ajax, 所以没封装好, 新手一遇到这问题就崩所以建议楼主用jquery....