【发布时间】:2015-03-27 14:39:34
【问题描述】:
我正在使用 jquery $.when 来调用返回 json 的 REST url。
当我使用单个参数执行 $.when 时,我在 data1 结果中得到的对象与执行多个结果时不同,即使返回参数都应该是独立的。
<script>
$(document).ready(function () {
fun1(1025);
fun2(1025);
function fun1(id) {
$.when(_restFun1(id), _restFun1(id)).done(function(data1, data2) {
console.log(data1);
});
}
function fun2(id) {
$.when(_restFun1(id)).done(function(data1) {
console.log(data1);
});
}
});
</script>
打印到 console.log 的对象是不同的,即使这两个函数应该打印同一个对象!
注意:
_restFun1 函数是这样的:
function _restFun1(id)
{
return $.ajax({
url: "http://192.123.12.3/test.php?id="+id,
data: "",
dataType: 'json',
success: function (data1) {
}
});
}
它返回一个json对象,在一种情况下,我得到json对象,在多次调用的情况下,我得到一个具有多个其他字段的对象,如responseText,responseJSON,一个“成功”字符串,然后在一个数组中我需要的真正的 JSON。
【问题讨论】:
-
你期望什么输出,你得到什么输出?查看
_restFun()函数,以及被调用的服务器端代码也可能有所帮助。 -
请将日志输出复制/粘贴到问题中。