【问题标题】:coffeescript $.post get string from return objectcoffeescript $.post 从返回对象中获取字符串
【发布时间】:2013-12-04 02:30:28
【问题描述】:

我有一个小问题。当我打电话时

myVar = $.post('/check_2/', JSON.stringify({"newname": window.NEWNAME,}), callback, 'json')

在 'myVar' 中我有一个对象,所以,当我执行 console.log myVar 时,我会得到类似:

Object {readyState: 1, setRequestHeader: function, getAllResponseHeaders: function,getResponseHeader: function, overrideMimeType: function…}
abort: function (a){a=a||"abort",p&&p.abort(a),w(0,a);return this}
always: function (){i.done.apply(i,arguments).fail.apply(i,arguments);return this}
complete: function (){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this}
[...]

如果我制作console.log myVar.success(例如),它会打印成功显示的内容,但是,如果我制作console.log myVar.responseText(调用结果在哪里),我会不断收到undefined,所以我可以从不真正访问我感兴趣的数据。

有什么办法可以访问这些数据吗??

我知道我对邮寄电话有一些误解,但由于我有误解,我不知道我做错了什么。

我用post而不是get,因为我确实需要将数据发送到后端,所以我可以在DB中进行一些检查

编辑: 我在哪里制作 console.log:

check2: (callback) ->
  console.log "Starting..."
  myVar = $.post('/check_2/', JSON.stringify({"newname": window.NEWNAME,}), callback, 'json')
  console.log myVar
  console.log "success example"
  console.log myVar.success
  console.log "responseText"
  console.log myVar.responseText

编辑 2 这是console.log myVar 展示的对象的照片

【问题讨论】:

  • 你在哪里打电话console.log(在回调内部或外部)?
  • 您访问callback 中的数据。就目前而言,您只需将myVar 设置为$.post 返回的承诺。如果您向我们展示您希望如何处理这些数据,我们可能会提供更好的帮助。
  • ´check2: (callback) -> console.log "starting..." myVar = $.post('/check_2/', JSON.stringify({"newname": window.NEWNAME, }), 回调, 'json') console.log myVar´
  • 我想要获取的数据是一本字典,其中有我需要加载用户个人资料的内容

标签: javascript json post coffeescript


【解决方案1】:

$.post 是一个 AJAX 调用,它不返回服务器的响应,它返回一个 jqXHR 承诺:

jQuery.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
返回:jqXHR

说明:使用 HTTP POST 请求从服务器加载数据。

如果你想要来自 AJAX 调用的数据,那么你必须从回调中获取它:

fn = (data, status, jqxhr) ->
    # Your data is in `data` so do what you
    # need to do with `data` around here
    ...
    # And then call the other `callback` function
    # by hand.
    callback(data, status, jqxhr)

$.post('/check_2/', JSON.stringify({"newname": window.NEWNAME,}), fn, 'json')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    相关资源
    最近更新 更多