2010-12-05 59 views
0

得到回报嗨,我正在构建一个需要访问服务器时间的应用程序,然后才能发送AJAX请求,唯一的方法是能够有请求的函数使用AJAX,从服务器的时间,所以在我的功能,我有以下代码:无法从jQuery AJAX成功函数

$.ajax({ 
    type:"GET", 
    url:"app/time.php", 
     success: function(html){ return html; } }); 

在自己的代码是好的,但因为它是,我无法访问返回的HTML,这意味着数据对我来说毫无用处。我尝试将数据发送到另一个函数,甚至回到相同的函数,它只是增加了我认为不需要的复杂性。我也尝试将HTML的值设置为另一个变量,然后使用,但这不起作用。

所以我问是否有一个简单的方法来访问从AJAX请求返回的“html”变量,所以我可以在页面上设置变量等于该功能?

回答

1

做这样的:

function getTime() { 

     $.ajax({ 
     type:"GET", 
     url:"app/time.php", 
      success: function(html){ setTime(html); } }); 
    } 

    function setTime(time){ 
    //do what ever you want with time 
    } 

当过您打电话时getTime()称为AJAX将被制成,并且功能setTime()将被调用,并且将得到时间通过它的论点。

,或者你可以做这样的

功能的getTime(){

$.ajax({ 
    type:"GET", 
    url:"app/time.php", 
     success: function(time){ // do what ever with time ; } }); 
} 

我觉得这种方式比较容易的,但如果你有很长的函数,那么前一个是清洁,我认为。

0

你不能从那里返回一个值。这是一个异步函数,在XHR的请求成功完成时触发。这里需要调用另一个回调:

function getTime(cb) { 
     .ajax({ 
     type:"GET", 
     url:"app/time.php", 
     success: function(html){ cb(html); } 
     }); 
} 

getTime(function(html) { 
    // do something with html 
}); 
+0

我想知道为什么当你有函数'getTime()'时调用函数'cb()'的数据''在那里,我的意思是你在哪里得到'getTime()'的HTML?当你调用'cb();' – 2010-12-05 15:17:17

+0

感谢Andy,但是当我使用该函数时,我希望能够将服务器的时间设置为一个变量,在这种情况下,我无法使其工作。 – 2010-12-05 15:23:37