$.get-response没有responseJSON方法,但当我在Chrome开发工具中绑定它时,它确实有

$.get response not having responseJSON method, but when I bind it in Chrome dev tools, it does?

本文关键字:开发工具 Chrome 绑定 确实有 没有 get-response responseJSON 方法      更新时间:2023-09-26

我正在进行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);
});

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