0

我是 javascript 的新手,尤其是 ajax 的新手..只是想弄清楚..

我从一个教程中编写了这段代码,但找不到我做错了什么。在这里你可以看到它的直播

我从 Firebug 得到的错误:“TypeError: xmlhttp is undefined [Break On This Error]

if (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();

同样正如迈克尔指出的那样,在分配 onreadystatechange 函数时有括号:

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

如果不去掉括号,stateChange()函数会被调用,返回值会给出xmlhttp.onreadystateshange你不想要的。

于 2012-11-27T13:58:56.563 回答
0

属性名称输入错误: xmlhttp.onreadystateshange=stateChanged;

它必须是'onreadystatechange'

于 2014-02-07T15:35:19.660 回答