当前位置: 首页 > 面试题库 >

如何从onreadystatechange = function()调用的函数中返回变量

姚培
2023-03-14
问题内容

我将ajax技术与php结合使用,我想知道如何从onreadstatechange调用的函数中获取返回变量。

一个Java函数称为onsubmit,然后调用一个php脚本来验证数据库中的某些内容,并根据结果返回true或false。

这是我遇到问题的地方,我希望onsubmit =“ return snappyajaxfunction()”根据php的结果返回false或true。

我的问题是,如何从stateChanged函数中获取false或true的结果,从而成为snappyajaxfunction的返回值。

我试着这样做:结果= request.onreadystatechange = StateChanged没有运气。

我也尝试过将responsetxt保存到全局变量,然后在snappyajaxfunction中返回该全局变量,但是没有运气。

snappyajaxfunction()
{

   request.onreadystatechange=stateChanged;         
   request.open("GET",url,true); 
   request.send(null);

   return result;
}

function stateChanged() 
{ 
    if (request.readyState==4)
    {   
       return request.responseText; 
    }       
}

编写脚本的目的是验证用户输入的用户名/密码以及存储在我的数据库中的用户名/密码。如果它们不匹配,则返回false,并且将不提交表单;如果提交,则将用户带到欢迎页面…


问题答案:

您可以这样做:

function stateChanged() 
{ 
    if (request.readyState==4)
    {   
       OnStateChanged(request.responseText);
    }           
}

OnStateChanged充当事件处理程序的函数在哪里…

编辑:在OnStateChanged您可以然后根据响应提交或不提交表格

EDIT2:在服务器上,当您检查u /
p时,如果他们是正确的,请正确登录用户并将状态返回给JavaScript。然后在JavaScript中,而不是重新提交表单,只要重新加载/重定向页面即可成功或显示警报,否则…

只是不可能通过函数中的异步操作从函数中返回某些东西……执行的原始线程早已消失了。异步操作由另一个线程执行(如果我没记错的话,请不要触发)。

谢谢



 类似资料:
  • 问题内容: 我想回到别处外使用的 范围 的 我猜想这是与范围有关,但它似乎不相同的方式工作 C# 不 问题答案: 是的,我之前的答案不起作用,因为我没有对您的代码给予任何关注。:) 问题在于匿名函数是一个回调函数- 即getJSON是一个异步操作,它将在某个不确定的时间点返回,因此即使变量的范围不在该匿名函数(即闭包)之外,它也会没有您认为应该的价值: 要使用由getJSON调用设置的studen

  • 问题内容: 我如何使这个小功能“ imageExists”返回ajax请求是否成功? 问题答案: 我相信您将必须使用同步模式并使用单独的变量来存储返回值。

  • 我找到了一些很好的SO链接(如何从异步回调函数返回值?以及从node.js中的回调函数返回值等),但它们并不是不能为我的问题提供解决方案。 我的问题:能够得到异步调用的结果,但我如何使用这个结果返回我的函数? 这里获取callBackResponse的值为true或false,并希望将该值用作:

  • 问题内容: 我在从Node.js中的回调函数返回值时遇到了小麻烦,我将尝试尽可能轻松地解释我的情况。考虑一下我有一个片段,它包含URL,并命中该URL,并提供输出: 我试图将其包装在函数中并返回如下值: 因为在我的Node.js代码中,我有很多语句将决定value的值,例如: 关键是a内的所有语句将保持相同,除了的值。因此,绝对需要将这些通用代码放入函数中。我尝试了同样的方法,但是in总是会回报我

  • 问题内容: 我正在尝试在下面的代码中为变量分配一个值: 我在Firebug中跟踪变量,结果发现该变量被分配了功能。有没有办法让代码运行,然后将值赋给变量? 问题答案: 在异步编程中,您 不需要 数据,因为您不知道何时该数据将变得可用-它是异步的。 进行异步编程的方法是使用事件和/或回调。 例: 这个问题是SO上最常见的问题之一,至少在涉及javascript标签时-请在问自己的问题之前先搜索类似的

  • 问题内容: 在SO中多次问过这个问题。但是我还是收不到东西。 我想从回调中获得一些价值。请看下面的脚本进行澄清。 如果我尝试返回该值,则只是“未定义”。我遵循了SO的一些想法,但仍然失败。 那些是: 问题答案: 这是不可能的,因为您无法从同步方法内部的异步调用返回。 在这种情况下,您需要将回调传递给foo,该回调将接收返回值 问题是,如果内部函数调用是异步的,则所有“包装”此调用的函数也必须是异步