Javascript 使用Ajax更改div的内部内容

Javascript 使用Ajax更改div的内部内容,javascript,html,ajax,xmlhttprequest,server-side,Javascript,Html,Ajax,Xmlhttprequest,Server Side,我是Ajax的初学者,我有一段html代码,通过使用xmlhttprequest请求不同的html地址并将其内容放入div来更改div的内部内容。我做错了什么?代码如下: var xmlhttp=null; if(window.XMLHttpRequest){ xmlhttp=新的XMLHttpRequest(); }否则{ 警报(“您必须使用其他浏览器。”); } 函数makeRequest(serverPage,objID){ var obj=document.getElementBy

我是Ajax的初学者,我有一段html代码,通过使用xmlhttprequest请求不同的html地址并将其内容放入div来更改div的内部内容。我做错了什么?代码如下:


var xmlhttp=null;
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}否则{
警报(“您必须使用其他浏览器。”);
}
函数makeRequest(serverPage,objID){
var obj=document.getElementById(objID);
open(“GET”,serverPage);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==100){
obj.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(空);
}
我的网页
|  |  | 

xmlhttp.status==100
更改为
xmlhttp.status==200
检查这是否解决了您的问题

如果你尝试在IE中运行页面,请尝试添加这一行

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

测试xmlhttp.status==200而不是100

我想应该是:

function makeRequest(serverPage,objID){
    xmlhttp.open("GET",serverPage);
    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById(objID).innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}

一般来说,我觉得这没问题

但是,
xmlhttp.status==100
检查看起来可疑

100是一个不寻常的HTTP状态代码。通常,web服务器在成功请求时返回200(“OK”)

尝试将
状态==100
检查替换为
状态==200

有关参考资料,请参阅:

function makeRequest(serverPage,objID){
    xmlhttp.open("GET",serverPage);
    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById(objID).innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}
function AjaxGet(url,helm)
{ 
  if (xmlhttp == null)
  {  if (window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
       xmlhttp = new XMLHttpRequest();
    else  // code for IE6, IE5
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
  }

 xmlhttp.onreadystatechange = function()
 {   if (xmlhttp.readyState==4)
     {  if ( (xmlhttp.status==200) ||  (xmlhttp.status==304) )
          { document.getElementById(helm).innerHTML = xmlhttp.responseText; }
          else { document.getElementById(helm).innerHTML = xmlhttp.status + " " +xmlhttp.statusText; }
    }
 }

   xmlhttp.open("GET",url,true);
   xmlhttp.send();
}