我有点问题。当我打电话
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
显示的对象的照片
答案 0 :(得分:2)
$.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')