当前位置: 首页 > web开发 > AJAX > 正文

jQuery.form Ajax无刷新上传报错的解决方法

时间:2015-01-26

今天在用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.cn/webkf/ajax/