javascript 变量未显示正确的值

标签 javascript ajax

我有这个ajax调用功能。

function saveData(ip)
{

    $JQ.ajax({

     type: "POST",

     url: "all_actions.php",

     data: 
     {
         page_url:document.URL,
         ip_address:ip 
     },

     success: function(responce)
     {

         if(responce)
         {
             var newtoken;
             newtoken=responce;
             return newtoken;
         }
     }
    });
}

然后我还有另一个功能

 function getToken()
{
    var ip=myip
    var mytoken;
    mytoken=saveData(ip);
    alert(mytoken);

}

我的 token 在警报中给出未定义。尽管如果我在 savedata 响应中警报 newtoken 变量,它会在警报框中给出正确的值。为什么如果我返回该 avlue,它不会分配给 mytoken。

是不是时间延迟问题。?

需要你的帮助...

最佳答案

您无法从异步调用返回。

您必须在 success 函数中使用返回数据。无论您要使用token做什么,请将该代码写入success处理程序中。

success: function(responce)
 {

     if(responce)
     {
         var newtoken;
         newtoken=responce;

         // Global variable
         sourceid = newtoken;

         return newtoken; // This won't work
     }
 }

还有

 function getToken()
{
    var ip=myip
    var mytoken;
    mytoken=saveData(ip); // This won't return any data
    alert(mytoken); // This won't give you anything useful

}

关于javascript 变量未显示正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478493/

相关文章:

javascript - 替代 $.load() 不使用 AJAX

javascript - Django Ajax 返回错误消息

javascript - toggleClass 在 ajax 中不起作用

javascript - 如何将 onclick 功能添加到我的搜索栏

javascript - 使用带一个参数的函数计算数组中元素的重复次数

javascript - 如何重复函数来放置另一个innerHTML?

javascript - 使用ajax发送数据时,我想创建加载栏

javascript - AngularJS:在任何部分页面 Controller 之前调用特定函数

javascript - 使用事件监听器克隆 Bootstrap 元素

c# - 使用局部 View 的 MVC 4 验证