0

私はjavascript、特にajaxが初めてです..そして、それを理解しようとしています..

あるチュートリアルからこのコードを書きましたが、何が間違っていたのかわかりません。生で見られるのはこちら

Firebug から取得しているエラー:「TypeError: xmlhttp は未定義です [Break On This Error]

もし (xmlhttp.readyState == 4){"

私のコードは

// JavaScript Document

var xmlhttp;
var url;

function ajaxFunction(){

if  (window.ActiveXObject){//if the window is InternetExplorer

    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    }else if(window.XMLHttpRequest){// if Window is Firefox etc..

        xmmlhttp= new XMLHttpRequest();

        }else{

            alert ("Get a New Browser")

            }

}//end of ajaxFunction()


function getInfo(){

    ajaxFunction();

    var entryInfo= document.getElementById("entry").value;

            function stateChanged(){
                if (xmlhttp.readyState == 4){

                    document.getElementById("results").innerHTML = xmlhttp.responseText;

                    }//if (xmlhttp.readyState == 4)

                }//end of function stateChanged()


url = "info.php?user="+entryInfo;
xmlhttp.onreadystateshange=stateChanged();
xmlhttp.open("GET",url,true);
xmlhttp.send(null);


    }// end of function getInfo
4

2 に答える 2

3

ここにタイプミスがあります:

   xmmlhttp= new XMLHttpRequest();
     ^

への変更

 xmlhttp= new XMLHttpRequest();

また、Michaelが指摘したように、onreadystatechange関数を割り当てるときは括弧があります。

xmlhttp.onreadystateshange=stateChanged();
                                       ^ remove the ()

括弧を外さないと、stateChange()関数が呼び出され、不要な戻り値が返されxmlhttp.onreadystateshangeます。

于 2012-11-27T13:58:56.563 に答える