0

私はまだAJAXに比較的慣れていないので、単純なテストが機能しない理由を理解しようとしています。私が読んだところによると、AJAXは1つのドメインでは機能せず、他の言葉はクロスサイトやリモートサーバーのようにポップアップします。とにかく私の問題は、私のコードが間違っているのか、それとも単に私がやろうとしていることが不可能なのかわからないということです。ボタンをクリックしたときにデータを送信するための単純なajaxリクエストを作成しました。これが最初のスクリプトのコードです。

<html>
  <head>
    <script type="text/javascript" >
      function load(thediv, thefile) {
        if (window.XMLHttpRequest) {
          xmlhttp = new XMLHttpRequest();   
        } 
        else {
          xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }   
        xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById(thediv).innerHTML = xmlhttp.responseText;
          }     
        }
        xmlhttp.open('GET', thefile, true);
        xmlhttp.send();
      }
    </script>
  </head>
  <body>
    <input type="submit" onclick="load('adiv', 'hello.php');">
    <div id="adiv"></div>
  </body>
</html>

hello.phpファイルのコードは次のとおりです

<?php
  echo 'aaa';
?>
4

1 に答える 1

1

AJAX は、バックグラウンドで行われる単なる http リクエストです。しかし、はい、任意のサーバーに対して通常の ajax リクエストを実行できないセキュリティ制限があります。

コードに欠けているのは、実際にリクエストを送信する URL を設定することです。load() 関数のパラメーターとして持ってhello.phpいますが、実際に使用することはありませ。つまり、「どこにも」AJAXリクエストを行っています。

于 2012-07-19T21:50:21.583 に答える