如何在done()函数中从.ajax请求访问返回的值

时间:2012-07-20 23:46:03

标签: javascript jquery ajax deferred

这是我的函数,它返回一个人的名字。

function getName(ID){
    return $.ajax({
        url:url,
        data: ID,
        type: 'get',
        dataType: 'json'
    });
}

这是我尝试使用.done()函数的地方。

getName("1").done() // How do I ref the returned var in our done function? 

我对如何在我的done函数中引用getName函数的返回值感到困惑。

我知道我可以使用成功做到这一点:在.ajax中,但我试图摆脱它并使用延迟对象。

谢谢!

2 个答案:

答案 0 :(得分:1)

它看起来很像需要一个回调函数,它接受一个带有从teh请求收到的数据的参数。 http://api.jquery.com/jQuery.ajax/

getName("1").done(function(response) {
  alert(response);
}); 

答案 1 :(得分:1)

就在the documentation

//Example: Save some data to the server and notify the user once it's complete.
$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

//Example: Retrieve the latest version of an HTML page.
$.ajax({
  url: "test.html",
  cache: false
}).done(function( html ) {
  $("#results").append(html);
});

另外,请确保阅读this,因为根据数据类型,您实际上可能“接收”的不是简单的字符串/ id,而是可能是从JSON / XML结果解析的对象或...