【问题标题】:Getting return value using .done after jquery ajax post在 jquery ajax 发布后使用 .done 获取返回值
【发布时间】:2013-08-03 07:11:31
【问题描述】:

我正在尝试使用 jQuery 获取 ajax 帖子的返回值。返回值应该是一个数字(例如 2)。直接在页面上发帖让我得到正确答案,也就是说,2。

在下面的代码中,我试图在警告框中显示值 2,但改为获取“object Object”...

function updatePositionDisplay(item)
{        
        var request = $.ajax('/admin/gallery/position', {
            type: 'POST',
            data: 'param=' + item
        });

        request.done(function(data) {
            alert(data);                
        });   
    }
}

我错过了什么吗?

我已经用谷歌搜索并搜索过这个网站,但找不到具体的案例。 :(

【问题讨论】:

  • 尝试提醒data[0] 看看你会得到什么。
  • 刚试过,提示“未定义”。嗯嗯

标签: jquery return-value


【解决方案1】:

您可以尝试使用console.log(data) 代替警报,这样您就可以看到对象内部的内容。 其次,请告诉我们 /position 端点返回什么。

【讨论】:

  • 您的建议帮助我调试并发现问题出在 /admin/gallery/position 本身,该值未打印/回显。抱歉,我无法投票给您的答案...没有足够的声望点:(
【解决方案2】:

随便用

alert(JSON.stringify(data));

【讨论】:

  • OP 没有指定响应中有 JSON。你只是在猜测吗?
  • 是的,从他得到的,object Object,OP看到这个object里面有什么之后,就可以弄清楚使用它的属性,大概'data.responseText'就是他需要的。
  • 所以你说如果对象不是 JSON,使用 JSON.stringify 打印对象及其属性是不正确的? :)
  • 不正确?不,不好的做法?是的。 console.log() 是识别对象是什么的更好方法。
  • 大家好,刚刚发现在 /admin/gallery/position 中没有回显该值。让页面打印出价值,瞧!出现预期的数字。我非常感谢您的所有帮助,即使这是我的愚蠢错误。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
相关资源
最近更新 更多