$ .get响应没有responseJSON方法,但是当我在Chrome开发工具中绑定它时,它呢?

时间:2016-05-08 12:32:40

标签: javascript jquery

我正在进行这个AJAX调用:

let g = $.get("http://api.tvmaze.com/search/shows?q=seinfeld", {dataType: 'json'});

如果我尝试拨打g.responseJSON,期待一组对象,我会undefined

但是如果我将g记录到控制台,我可以清楚地看到它是一个带有responseJSON属性(对象数组)的对象。如果我右键单击该对象并将其绑定到Chrome的devtools中的临时变量,请在 上调用.responseJSON

我对此完全感到困惑,我想不出有任何理由会发生这种情况。我清楚地看到该属性存在,它存在于副本中,为什么它不能在这里工作?

1 个答案:

答案 0 :(得分:1)

$.get返回jqxhr对象,因此如果您想从服务器访问响应,您可以订阅.done事件,在此事件中您将获得实际的服务器响应:

g.done(function(response) {
    alert(response);
});

当收到服务器的实际响应时,将在稍后阶段调用该事件。