2013-01-18 116 views
1

可能重复:
How to return the response from an AJAX call from a function?的JQuery不用彷徨返回数据

尝试将数据恢复到VAR是的pNOW称为不用彷徨功能。

/* set var to server side script */ 
var pNow = getStime(); 

function getStime() { 
$.get('servertime.asp', function (data) { 
    return data; 
    //alert(data); 
}); 
} 

alert(data)确认数据有效并来自服务器端脚本,但未返回到调用它的var。

+1

您的$ get是一个异步调用。你需要使用一个全局变量,然后分配给你的成功函数。 – ryadavilli

+0

穆萨给出的链接有很多非常相关的信息。你会在那里找到你的答案。 – Snixtor

回答

2

$.get的第二个参数中的回调函数是一个异步调用,并且在getStime函数已经完成执行后触发。您可以使用deferred.done来获得如下所示的值。

var pNow; 
getStime().done(function(data) { pNow = data; }); 
alert("Use pNow here" + pNow); 
function getStime() { 
    return $.get('servertime.asp'); 
} 
+0

Adil感谢您的帮助,但上面的代码无效 – hillcreative

+0

您试过了吗? – Adil

+0

是的,结果似乎没有回到pNow – hillcreative

0

你可以做这样的事情。

/* set var to server side script */ 
var pNow = getStime(); 

function getStime() { 
    var newData = null; 
    $.get('servertime.asp', function (data) { 
    newData = data; 
    //alert(data); 
    }).complete(function() { 
    return newData; 
    }); 

} 
+1

同样的问题。 'return'将结束内部回调函数,而不是'getStime'函数。请记住,当你执行'function(){...}'时,你输入一个新的函数范围 – nbrooks