任何人都可以详细说明什么可能会出错吗?我没有真正的线索知道在这一点上要寻找什么。javascript console.log(obj)显示现有属性'上下文'和console.log(obj.context)显示undefined
示例代码:
$.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调用后的一段时间导致我的代码出现问题。我很确定这与ASYNC问题无关,因为问题已经存在于原始ajax请求的实际成功回调中。
我禁用了已发送的php头文件,但它保持不变。我试图基于另一个话题,这意味着我的头文件可能有问题。 我也禁用了$ .ajax()中的dataType attr,但是我的响应没有被识别为json。
如何调试的任何帮助或提示,非常感谢!
更新: 删除ajax调用中的上下文属性确实解决了问题。 但是,为什么当console.logging()
你的“完成”功能是怎样的。我认为它应该是'done.call(this,response)',但是因为你使用上下文,你也可以执行'this.done(response)' –
'console.log(JSON.stringify(response))''给你什么? – Matt
您确定响应正在被视为JSON并被解析为对象吗?也许'response'只是一个字符串。 (尝试做'console.log(typeof response)'检查) – hugomg