引用(ajaxfileupload.js) ajaxfileupload.js報這錯jQuery.handleError is not a function
阿新 • • 發佈:2019-01-30
在做ajaxFileUpload時,我也遇到這個問題,同時還有其它的問題,用了一下午的時間解決了: 問題1:如樓主所說,jQuery.handleError is not a function 原因是,經測試handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.6 和1.7中都沒有這個函數了,因此在1.4.2中將這個函式複製到了ajaxFileUpload.js中,問題解決 handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) { s.error.call( s.context || s, xhr, status, e ); } // Fire the global callback if ( s.global ) { (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] ); } }, 問題2:一直得到error ,無法執行指定的success方法。通過追蹤ajaxFileUpload的執行過程發現,在呼叫它自身的uploadHttpData函式時,當執行if(type=="json") eval("data = "+data); 會丟擲異常,導致在處理異常的時候將status = "error" 因此一直執行error方法。 上網查詢,得知eval函式是用來執行一段js程式碼,而並不是如我所想的反解json串 eval("data = "+data);的意思是 將data 賦值給 data引數 ,但是當我返回給頁面的是一個簡單的字串,比如"OK" ,時,這樣寫就丟擲異常。最後改為 eval("data = \" "+data+" \" ");即將返回的資料用雙引號引起來當作字串,然後賦給 data 。終於成功了。。。 貼出來,希望可以幫助到其他同樣遇到這個問題的人。