Javascript ajax函数没有';t返回值

Javascript ajax函数没有';t返回值,javascript,ajax,function,return-value,Javascript,Ajax,Function,Return Value,为什么这个javascript函数只返回“undefined”?我想让它返回真或假。 这是我的密码: function Ajax() { var XML; if(window.XMLHttpRequest) XML=new XMLHttpRequest(); else XML=new ActiveXObject("Microsoft.XMLHTTP"); XML.onreadystatechange=function() {

为什么这个javascript函数只返回“undefined”?我想让它返回真或假。 这是我的密码:

function Ajax() {
    var XML;
    if(window.XMLHttpRequest)
        XML=new XMLHttpRequest();
    else
        XML=new ActiveXObject("Microsoft.XMLHTTP");
    XML.onreadystatechange=function() {
        if(XML.readyState == 4 && XML.status == 200) {
                if(XML.responseText == '1') {
                        return true;
                } else {
                        return false;
                }
        }

        XML.open("POST","p.php", false);
        XML.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        XML.send("user=f");
}
我不知道为什么。

似乎是你的错

if(XML.readyState==4&&XML.status==200)


不满意的是为什么它不能归还任何东西。验证是否将其他返回语句与else一起置于上述if条件

很可能是因为无法访问
p.php
,所以
XML.status
从不包含值200。检查
p.php
的可达性

为什么要否决这个问题?在我看来,这是合法的。XML.onreadystatechange中的每个返回代码都不会返回值。XML.responseText的值是“1”(使用警报函数)。如果可以访问XML.responseText,那么问题出在哪里?XML.responseText只有在p.php返回其内容时才可访问,这是当
XML.status==200
时的情况。p.php返回内容,但Ajax函数不返回其值,因此您应该编写“当从浏览器调用p.php时,我得到'1'作为输出”之类的内容。如果你保持不具体,没有人能解决你的问题。