Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在done()函数中访问.ajax请求返回的值_Javascript_Jquery_Ajax_Deferred - Fatal编程技术网

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

Javascript 如何在done()函数中访问.ajax请求返回的值,javascript,jquery,ajax,deferred,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? 我

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

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函数返回的值感到困惑

getName("1").done() // How do I ref the returned var in our done function? 
我知道我可以在.ajax中使用success来实现这一点,但我正试图摆脱这一点,使用延迟对象


谢谢

看起来好像完成了一样,它需要一个回调函数,该函数使用从请求接收的数据获取一个参数。

就在那里:


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

Ah,我想实际执行类似于getName(“1”).done(buildRow(nameReturned));所以我必须使用一个anon函数?我想你可以使用任何一个函数,只要取一个param
函数buildRow(nameReturned){}
就可以了
getName(“1”).done(buildRow(nameReturned))
Ah ok,那么我们在done()函数中引用从getName()返回的任何名称?我可能有点误解,但这似乎有点奇怪。@dm03514实际上,当返回JSON或XML等时,您的“
nameReturned
”(或
foo
…)变量可能实际上是一个对象,而不仅仅是一个简单的字符串。看看@yes,希望它有一些结构,而不是字符串,只是为了说明一下@JasonWells是的,和任何函数一样,你可以调用你的参数任何你喜欢的东西第一个参数是从服务器传回的数据第二个是状态码第三个是
jqXHR
(我不知道那是什么)好的,我在我的示例中返回JSON。然后添加
console.log(myvar)
这样您就可以检查
myvar
(假设您指定了参数
myvar
)。然后,您可以深入查看
myvar
并查看它具有哪些属性/您需要使用哪些属性等。您可以通过在Chrome中按
Ctrl-Shift-J
或在Explorer中按
F12
访问控制台。感谢Roblll,这非常有用。我仍然找不到关于我们是否可以执行getFoo().done(getBar(response))的很多文档;当我得到一个“未定义的响应”时。我可以做getFoo().done(函数(响应){getBar(响应)});-只是没那么干净:p
//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);
});