jsfiddle – 用jquery返回html时

在尝试使用jquery deferreds回显jsfiddle上的一些html时,我没有得到任何数据。

function showData(data1, data2) { console.log(data1[0]); console.log(data2); } function method1() { return $.ajax({ type: "post", url: "/echo/html/", data: JSON.stringify("test1"), dataType: 'html' }); } function method2() { return $.ajax({ type: "post", url: "/echo/html/", data: {data: "test2"}, dataType: 'html' }); } $.when(method1(), method2()).then(showData); 

我无法理解我在这里做错了什么。 将数据作为对象或JSON.stringify ,似乎都不起作用。 http://jsfiddle.net/VAy5g/

尝试使用像deferred.pipe()这样的异步方法。 stackoverflow线程10253192 jquery中显示了一些示例 – 了解Deferred.pipe()。

这是与您的问题相关的jquery文档, http://api.jquery.com/jQuery.when/ 。 仔细阅读并查看jQuery.ajax()文档,以获取ajax请求的成功和错误案例的完整描述。 完全适应原型的时候和noz分离function。 确保console.log正在这个地方做一些事情,并以你的function完成你希望它做什么以及应该在哪里做它来改变它。 登录文本文件可能更好。

对这个问题的回答有点迟了。

问题不在于你的jQuery。 这很好。 唯一的问题是你使用jsFiddle的/echo/html API。 比较你的代码:

 data: {data: "test2"}, 

工作代码 :

 data: {html: "test2"}, 

指定响应的属性是data.html ,而不是data.data

此版本的代码按预期工作。