Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回未定义值的Ajax、JS函数_Javascript_Php_Ajax - Fatal编程技术网

Javascript 返回未定义值的Ajax、JS函数

Javascript 返回未定义值的Ajax、JS函数,javascript,php,ajax,Javascript,Php,Ajax,我对这一切都很陌生,我正在学习Ajax和Javascript,我从一个php文件中获取值,但是当我尝试在方法中返回值时,我得到了一个未定义的值,我在控制台中登录了它。我尝试了很多东西,但没有成功。有人能教我这方面的知识吗。请批评我,我肯定有很多不好的做法 谢谢 功能检查电子邮件(){ var-xhttp; var状态; xhttp=newXMLHttpRequest(); var email=document.getElementById('email2')。值; xhttp.onreadys

我对这一切都很陌生,我正在学习Ajax和Javascript,我从一个php文件中获取值,但是当我尝试在方法中返回值时,我得到了一个未定义的值,我在控制台中登录了它。我尝试了很多东西,但没有成功。有人能教我这方面的知识吗。请批评我,我肯定有很多不好的做法

谢谢

功能检查电子邮件(){
var-xhttp;
var状态;
xhttp=newXMLHttpRequest();
var email=document.getElementById('email2')。值;
xhttp.onreadystatechange=函数(){
如果(xhttp.readyState==4&&xhttp.status==200){
var xmlResponse=xhttp.responseText;
状态=xmlResponse;
}
};
xhttp.open(“GET”,“php/ajaxCom.php?email=“+email,true”);
xhttp.send();
返回状态;
}
您将立即返回状态,实际AJAX调用将异步返回

您需要更改流,以便checkEmail接受回调函数作为参数,而不是返回它。诸如此类:

function checkEmail(callback) {
    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
        var xmlResponse = xhttp.responseText;      
        status = xmlResponse;

        callback(status);
    }
};

...

checkEmail(function(status) {
    alert('Status: ' + status);
});
您将立即返回状态,实际AJAX调用将异步返回

您需要更改流,以便checkEmail接受回调函数作为参数,而不是返回它。诸如此类:

function checkEmail(callback) {
    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
        var xmlResponse = xhttp.responseText;      
        status = xmlResponse;

        callback(status);
    }
};

...

checkEmail(function(status) {
    alert('Status: ' + status);
});

问题出在哪里,就指哪一行。同时向我们展示
ajaxCom.php
code?危险:你很容易受到你自己需要的攻击。@Anant那里我做了一个更新,很抱歉。我在“获取状态”中调用它时遇到问题function@Quentin是的,我必须做准备好的sql,这是你们遇到的问题,这意味着哪一行。同时向我们展示
ajaxCom.php
code?危险:你很容易受到你自己需要的攻击。@Anant那里我做了一个更新,很抱歉。我在“获取状态”中调用它时遇到问题function@Quentin是我必须做的准备sql是itI仍然在控制台日志的getstatus中为b获取未定义的值,但是警报显示了正确的文本为什么thisInside checkEmail()是返回状态;语句是在值实际进入状态之前执行的,因此当时它是未定义的。我仍然在控制台日志中为b的getstatus中获取未定义的值,但警报显示了正确的文本,为什么thisInside checkEmail()是返回状态;语句是在值实际处于状态之前执行的,所以此时它是未定义的。