2010-05-26 97 views
0

我正在使用Ajax将数据发布到服务器(PHP代码)并进行更新。我张贴许多数据一个接一个,但在与阿贾克斯后失败,不返回readyState设置为4 代码如下Ajax提交问题?

function getHttpRequest() 
{ 
    var request=false; 
    if(window.XMLHttpRequest) 
    { 
     request=new XMLHttpRequest(); 
    } 
    else if(window.ActiveXObject) 
    { 
     try 
     { 
      request=new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     catch(e) 
     { 
      try 
      { 
       request=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(e) 
      { 
       request=false; 
      } 
     } 
    } 

    return request; 
} 

的代码开始在这里..

function updateAnswer(){ 
var request=getHttpRequest(); 
request.open('post','addAnswer.php'); 
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
request.send("answer="+ans); 

if(request.readyState == 4) 
{ 
    var response=request.responseText; 
    document.getElementById("display").innerHTML=response; 
} 
} 

我打电话给这个函数来更新数据库中的答案,但它不会返回status = 4有时...请帮助

+0

任何你不使用其中一个千变万化的AJAX库的原因,它被证明是健壮的? – RoToRa 2010-05-26 12:38:19

+0

没有理由,但这是一个非常小的应用程序,我认为..我会以经典的方式编码... – 2010-05-26 12:42:03

回答

0

innerinnerHTML应该是innerHTML。每次调用updateAnswer时,readyState正从零变为四。四个满载,而较小的是不同的装载阶段。

+0

对不起,内心的内在......:D ... – 2010-05-26 12:43:05

+0

我应该使用readstatechange事件并将代码写入单独的函数中(成功时)?? – 2010-05-26 12:46:35

+0

是的。我没有意识到你没有将'updateAnswer'附加到'onreadystatechange'上。先做。 – 2010-05-26 12:49:00

0

为什么不简化生活并使用像jQuery这样的框架?

此外,你不能一次发布所有的数据,这样保存一些往返服务器?

+0

因为使用库这样简单的东西是不好的。 http://azabani.com/51 – 2010-05-26 12:48:33

+0

是啊!我同意...图书馆很容易做复杂的事情... – 2010-05-26 12:57:55