这似乎是最离奇的事情:
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对象不同?
答案 0 :(得分:2)
不完全。 get返回延迟而不是回调的结果
var mah_dataz;
var deferred = $.get("link/to/request", function(jqxhr_ob) { mah_dataz = jqxhr_ob});
如果您刚刚做出回应,那么......
$.get("link/to/request")
.done(function(response) {
console.log(response);
});
哪个更整洁。