我正在拨打这个AJAX电话:

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

如果我尝试调用g.responseJSON,并期望有一个对象数组,则会得到undefined

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

我对此完全感到困惑,我只是想不出会发生什么原因。我清楚地看到该属性存在,它存在于副本中,为什么在这里不起作用?

最佳答案

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

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


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

09-25 17:19