任何人都可以详细说明可能出现的问题吗?关于在这一点上寻找什么,我没有真正的线索。
示例代码:
$.ajax({
url: uploader.fileupload('option', 'url'),
context: uploader,
success: function(response){
//logging uploader
console.log(uploader);
//logging this --> logs the same as logging uploader
console.log(this);
//loggin response --> clearly shows a context attribute holding the correct data for this response
console.log(response);
//logging response.context --> shows undefined
console.log(response.context)
var done = uploader.fileupload('option','done');
done.call(this, null, response);
},
dataType:"json"
})
我不习惯在$ .ajax()调用中使用context属性,我怀疑这个功能会导致我的问题。
在ajax调用后的某段时间,代码段会导致代码出现问题。我很确定这与ASYNC问题无关,因为问题已经存在于原始ajax请求的实际成功回调中。
我已经禁用了已发送的php-headers,但它仍保持不变。我根据另一个主题尝试了这个,这意味着我的标题可能有问题。 我还在$ .ajax()中禁用了dataType attr,但后来我的响应被识别为json。
非常感谢有关如何调试的任何帮助或提示!
更新 删除ajax-call中的context属性确实解决了这个问题。 但是当console.logging()
时,为什么它会附加到我的响应对象(或者至少似乎是附加)答案 0 :(得分:4)
我不确定这是否是你的问题,因为应该更好地指明问题本身。但是看看标题,似乎console.log()
是异步并通过引用传递的普通老问题。
当您致电console.log(object)
时,该对象将作为参考而不会立即打印。经过一段时间,当实际发生日志记录时,对象可能处于不同的状态(例如,在这种情况下,它可能具有属性)。
相反,当您记录obj.property
时,调用是同步的,并且该属性尚未定义。