在尝试使用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/
答案 0 :(得分:0)
尝试使用像deferred.pipe()这样的异步方法。 stackoverflow线程10253192 jquery中显示了一些示例 - 了解Deferred.pipe()。
这是与您的问题有关的jquery文档http://api.jquery.com/jQuery.when/。仔细阅读并查看jQuery.ajax()文档,以获取ajax请求的成功和错误案例的完整描述。完全适应原型的时候和noz分离功能。确保console.log正在这个地方做某事并改变它,就像你的功能完成你希望它做的那样以及它应该做什么。登录文本文件可能更好。
答案 1 :(得分:0)
对这个问题的回答有点迟了。
问题不在于你的jQuery。这很好。唯一的问题是你使用jsFiddle的/echo/html
API。比较你的代码:
data: {data: "test2"},
data: {html: "test2"},
指定回复的属性为data.html
,而不是data.data
。