【发布时间】:2014-07-08 00:05:33
【问题描述】:
这似乎是最奇怪的事情:
var mah_dataz = $.get("link/to/request");
console.log(mah_dataz);
/* result is the whole shebang:
Object {
abort: function (a){var b=a||u;return d&&d.abort(b),c(0,b),this}
always: function (){return e.done(arguments).fail(arguments),this}
complete: function (){if(i){var c=i.length;!function f(b){ab.each(b,function(b,c)
readyState: 4
... you get the idea...
responseText: "{'returns': {'wellFormatted':'JSON', 'cross':'MyHeart'}}" */
但是!
var mah_dataz = $.get("link/to/request");
console.log(mah_dataz.responseText)
// result is:
// undefined
这很快就被标记为重复并被驳回,但没有人完全回答这个问题,更不用说发布指向重复的链接了。问题是:
为什么会这样?为什么在第一种情况下返回整个对象,然后在第二种情况下,当引用其属性时,它是未定义的?我不明白为什么这种对象的行为从根本上(或看起来如此)不同于其他 javascript 对象?
【问题讨论】:
-
对于那些选择将其标记为重复并且甚至没有阅读实际问题的人,请重新打开问题或回答它,因为我绝对,绝对卡住并且从出现的内容中发疯,从我渴望但早期的眼睛,成为 javascript 绕道而行。我已经查看了您链接的答案;我看不出它如何回答我的问题(我可以看到它有很多背景信息,并回答了相关问题,但不是我的实际问题)。
-
它是
console.logthat mocks you。responseText属性在访问时为undefined,但在控制台中查看对象时具有数据。 -
好的,thankyou 非常感谢,我对@BenjaminGruenbaum 感到非常愤怒,尽管他显然是一个重要的贡献者,但今天完全忽略了我的实际问题。我确实看到这现在如何成为链接答案中描述的问题,感谢您花时间帮助我解决问题。
-
实际上,在对
console.log问题发表评论后,我也会为该副本关闭它。我想知道我们是否应该将这种情况纳入规范问题。 -
嗯,据我所知——现在——它隐含地由规范问题解决。但问题在于格式,或者问题的呈现方式;规范问题以与我描述的问题的实际体验不明显相关的方式解释了正在发生的事情(即,似乎是具有无法访问属性的对象)。找到一种方法将这个问题的表象与解决方案的现实联系起来,imo 肯定会使这个重复。
标签: javascript jquery ajax jqxhr