任何人都可以詳細說明什麼可能會出錯嗎?我沒有真正的線索知道在這一點上要尋找什麼。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