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