javascript - jQuery $.get 返回完整的对象与我需要的

标签 javascript jquery json getjson

这是我的代码:

var source;
source = $.getJSON(url, function(json) {
  return console.log(json);
});

上面是返回完整的 jQuery 对象与我请求的 JSON。响应看起来像这样:

abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
isRejected: function () {
isResolved: function () {
overrideMimeType: function ( type ) {
pipe: function ( fnDone, fnFail ) {
promise: function ( obj ) {
readyState: 4
responseText: "{'Hello':'World'}"
setRequestHeader: function ( name, value ) {
status: 200
statusCode: function ( map ) {
statusText: "OK"
success: function () {
then: function ( doneCallbacks, failCallbacks ) {
__proto__: Object

有人知道我做错了什么吗?我已经处理这个问题几个小时了:(

最佳答案

AJAX 是异步的,source 不能等于您请求的 JSON,因为它还不可用。 jQuery.getJSON 将返回它创建的用于处理请求的 jqXHR 对象,然后跑掉并检索响应。

$.getJSON(url, function(json) {
  // deal with response  here
});

响应可用时(一段时间后),回调(您传递的函数)被执行,因此您可以通过第一个参数(您我们调用了 json)。

您可以通过尝试以下操作来了解这一点:

console.log('1');

$.getJSON(url, function(json) {
    console.log('2');
});

console.log('3');

您会看到您的控制台将读取 1、3,然后一瞬间(即执行 HTTP 请求的时间)、2;这显示了 getJSON 响应返回但未完成,脚本继续执行,然后回调在一段时间后被调用。

关于javascript - jQuery $.get 返回完整的对象与我需要的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794965/

相关文章:

javascript - 将 jQuery .each 中具有多个 .get() 的函数转换为 q Promise

javascript - 方法完成时回调

javascript - 表单提交后保留切换的表格

javascript - 无限循环不起作用

即使有人选择浏览器,Javascript也会停止提交提交按钮 "prevent this page from creating additional dialogs”

javascript - 使用 jimp 为图像着色

Javascript:某些类在 2 个 javascripts/ccs 中以相同的名称定义了两次

javascript - 不透明度的jQuery条件?

php - JSON fatal error foreach

java - java中的simple.json无法打印JsonObject