1. 程式人生 > >引用(ajaxfileupload.js) ajaxfileupload.js報這錯jQuery.handleError is not a function

引用(ajaxfileupload.js) ajaxfileupload.js報這錯jQuery.handleError is not a function

在做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 。終於成功了。。。
貼出來,希望可以幫助到其他同樣遇到這個問題的人。