今天在用ajaxfileupload時firebug報了一個“jQuery.handleError is not a function”的錯誤。因為在以前使用jQuery.form一直都沒有出現過這個問題,我對比以前的項目才發現,在這個項目中使用的jQuery是1.10.2的版本,而以前是使用的1.4.2。度娘一番之後,找到解決辦法:jQuery.handleError is not a function 報錯原因是:
handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.4.2之後的版本中都沒有這個函數了。
因此在jquery進階版本中將這個函數添加上 ,問題解決。 該js程式碼片段可以加在jquer.js或者ajaxfileupload.js中。
; (function ($) { jQuery.extend({ handleError: function (s, xhr, status, e) { if (s.error) { s.error.call(s.context || s, xhr, status, e); } if (s.global) { (s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]); } }, httpData: function (xhr, type, s) { var ct = xhr.getResponseHeader("content-type"), xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0, data = xml ? xhr.responseXML : xhr.responseText; if (xml && data.documentElement.tagName == "parsererror") throw "parsererror"; if (s && s.dataFilter) data = s.dataFilter(data, type); if (typeof data === "string") { if (type == "script") jQuery.globalEval(data); if (type == "json") data = window["eval"]("(" + data + ")"); } return data; } });
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/ajax/