0

単純な AJAX アプリケーションを作成して、html ページが ajax.js ファイルを介して php ファイルからデータを取得できるようにします。既にそれらをサーバーに配置しているので、localhost/mypage にアクセスするときに実行する必要がありますが、いくつかの問題があるようで、期待どおりに物事が進まない。

これが私のhtmlファイルです:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <META http-equiv="Content-Type" Content="text/html; Charset=UTF-8">
    <title>
        My Portal
    </title>
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <script type="text/javascript" src="ajax.js"></script>
</head>
<body onload="load()">
    <div id="header">
        <img src="images/logo.gif" id="logo" alt="Logo"/>
        <a href="http://www.google.com">
            <img src="images/logo2.png" id="logo2" align="right" alt="google Ltd"/>
        </a>
    </div> 
    <div id="container">
        <div id="function"></div>
        <div id="Display"></div>
        <div id="View"></div>
    </div>
    <div id="footer">
    </div>
</body>
</html>

そして、以下はjsファイルです:

function load(){
    var xmlhttp;
    if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
            else{ // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }               

    xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById("function").innerHTML=xmlhttp.responseText;         
        }
    }

    xmlhttp.open("GET","test.php", true);
    xmlhttp.send();
}

最後にphpファイルです:

<?php
     print "<h1>hgfkegfalhgj</h1>";
?>

私のページに上記の文字列が出力されるはずですが、何も表示されません。どこに問題があるのか​​教えてもらえますか? ブラウザーで既に JavaScript が有効になっていることを確認したので、html ファイルで js ファイルの関数を呼び出すことができると確信しています。

4

3 に答える 3

1

あなたのコードは私のために働きます。

問題は、次のいずれかである可能性があります。

1) test.php へのパスを確認します ( xmlhttp.open() で絶対パスを使用することをお勧めします)

2) サーバーがページを正しく返していない可能性があります (test.php を開いて、出力を確認してください)。

firebug などのブラウザー プラグインを使用して、ajax の要求と応答を分析すると、より良い洞察が得られます。

于 2012-07-13T06:45:08.377 に答える
1

PHP はわかりませんが、コンテンツタイプを に設定する必要がありますtext/plain。お気に入り :

header('Content-Type: text/plain');
于 2012-07-13T06:35:26.117 に答える
0

bodyタグのonLoad関数の代わりに試してみてください

<script>
window.onload = function(){
load();
};
function load(){
//your code
}
</script>

または、本文の前にスクリプト load() 関数を試してください。私はそれがあなたの問題を解決すると思います。また、ID を変更してみてください。できればキーワードを ID として使用しないでください (関数 ID を別のものに変更します)。

于 2012-07-13T06:41:59.230 に答える