0

に次のコードを書きましたhome.phplogin()関数は、送信ボタンをクリックして呼び出されます。

 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表示されません。なぜですか?

【注意readyStateしてみたところ、status

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
4

3 に答える 3

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
于 2013-06-28T13:12:54.747 に答える
0

最後の行は

xmlHttp.send();

しかし、何らかの認証を行いたいようです...基本認証の場合、値はヘッダーに入れる必要があります。サーバー認証の子供の場合は、実装に依存します...理由を説明できますかxmlHttp.send() 呼び出しのユーザー名/パスワード?

于 2013-06-28T13:13:06.373 に答える
0

ただのアイデア:

  • onreadystatechange の前にxmlHttp を開く必要があると思います!

.open の 3 番目のパラメーターは、xmlHttp に onreadystatechange を起動するように指示します (これが true に設定されている理由です)。

ただし、それがバグでない場合:

  • this.responseTextを試しましたか?
于 2013-06-28T13:22:12.293 に答える