需要帮助来捕获AJAX响应

时间:2013-06-28 13:05:47

标签: php ajax

我在home.php中编写了以下代码。点击提交按钮调用login()函数。

 function login()
  {
    try{
      xmlHttp=new XMLHttpRequest();
    }catch(e){
      try{
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e2){
      try{
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e3){

      alert('Sorry ! AJAX not supported');
    }
    }
    }
    xmlHttp.onreadystatechange=function(){
      if(xmlHttp.readyState==4&&xmlHttp.status==200){
        alert(xmlHttp.responseText);
      }
    }
    xmlHttp.open('POST','ajax_call.php',true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
    xmlHttp.send(document.getElementById('username').value,document.getElementById('password').value);
  }
  </script>

我的ajax_call.php脚本只是

<?
echo 'hello';
?>

我没有收到提醒Hello。为什么?

[我试图提醒readyStatestatus

xmlHttp.onreadystatechange=function(){
      alert(xmlHttp.readyState+" "+xmlHttp.status);
      if(xmlHttp.readyState==4&&xmlHttp.status==200){
        alert(xmlHttp.responseText);
      }
    }

并按顺序进行了跟踪

1 0
2 200
3 200
4 200
hello
1 0
hello

3 个答案:

答案 0 :(得分:0)

login()
      {
        try{
          xmlHttp=new XMLHttpRequest();
        }catch(e){
          try{
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }catch(e2){
          try{
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }catch(e3){

          alert('Sorry ! AJAX not supported');Or
        }
        }
        }
        xmlHttp.onreadystatechange=function(){
          if(xmlHttp.readyState==4&&xmlHttp.status==200){
            alert(xmlHttp.responseText);
          }
        }
        xmlHttp.open('POST','ajax_call.php',true);
        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");/* Anil Remove ;*/
        xmlHttp.send('username'.value,'password'.value);/* try static username and password*/
      }
      </script>[ajax call][1]


  [1]: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_post2

答案 1 :(得分:0)

最后一行应该是

xmlHttp.send();

但看起来你想要做一些身份验证...如果是基本身份验证,那么值应该放在标题中,或者如果它是服务器身份验证的一部分,则取决于你的实现...你能解释一下为什么您在xmlHttp.send()调用中有用户名/密码吗?

答案 2 :(得分:0)

只是一个想法:

  • 我认为你必须打开你的xmlHttp 才能 onreadystatechange!

.open的第三个参数告诉xmlHttp触发onreadystatechange (这就是为什么它被设置为真)

然而,如果那不是错误:

  • 您是否尝试 this.responseText