1

同じページのHTMLにあるDIVに、Googleホームページを提供するPHPファイルと通信しようとしているAjaxファイルがあります。

コードと PHP ファイルを徹底的にチェックしましたが、エラーは発生しませんでしたが、なぜ何も起こらないのか理解できません。誰かが私を助けてくれますか?. 前もって感謝します。

これが私のアヤックスです

<html>
  <head>
    <title>Ajax page</title>
  </head>
    <body> 

<h1>AJAX page</h1>
  <div id="info">
    This content will be changed by default....
  </div>

<script type="text/javascript">

params = "url=google.com";
request = new ajaxRequest();
request.open("POST", "ajaxLab.php", true);

request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", params.length);
request.setRequestHeader("Connection", "close");

request.onreadystatechange = function(){
  if(this.readystate==4){
    if(this.status==200){
      if(this.responseText != null) document.getElementById("info").innerHTML=this.responseText;
      else alert("Ajax error: No data received ");
    }
    else alert("Ajax error: " + this.statusText);
  }
}
request.send(params);

function ajaxRequest()
{
  try
  {
  var request = new XMLHttpRequest();
  }
  catch(e1)
  {
    try
    {
    request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e2)
    {
      try
      {
      request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e3)
      {
      request=false;
      }
    }
  }
return request; 
} 

</script>

  </body>
</html>

これが私の単純なphpファイルです..

<?php

if(isset($_POST['url'])){
echo file_get_contents("http://".sanitiseVar($_POST['url']));
}

function sanitiseVar($var){
    $var = htmlentities($var);
    $var = stripslashes($var);
    return strip_tags($var);
}

?>
4

3 に答える 3

1

OK、readyState プロパティはバンピーキャップではありませんでした。私はそれを修正した後に働いた!.

于 2012-09-18T14:55:04.353 に答える
0

ファイル全体を次のように変更します。

<html>
    <head>
        <title>Ajax page</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#info").load("ajaxLab.php", {'url': 'google.com'});
            });
        </script>
    </head>
    <body> 
        <h1>AJAX page</h1>
        <div id="info">
            This content will be changed by default....
        </div>
    </body>
</html>
于 2012-09-18T10:37:58.973 に答える
0

これを使って:

$(document).ready(function(){
    $.post("ajaxLab.php",
           {
                url:"google.com",
                // another_param : "its value"
           },
           function(result){ // Callback function, on success
             if(result != null)
                 $('#info').html(result);
             else
                alert("Ajax error: No data received ");
          }
    );    
});

jQuery ライブラリをヘッダーに含めることを忘れないでください。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
于 2012-09-18T10:42:39.717 に答える