- function (request, settings, exception) {
- if ( settings.responseXML && settings.responseXML.getElementsByTagName("error") )
- throw new Error( settings.responseXML.getElementsByTagName("error")[0].childNodes[0].nodeValue);
+ function (ajaxError, xhr, reqSettings, prevException)
+ {
+ if ( xhr.responseXML && xhr.responseXML.getElementsByTagName("error").length )
+ {
+ var errMsg = xhr.responseXML.getElementsByTagName("error")[0].childNodes[0].nodeValue;
+ var errCode = xhr.responseXML.getElementsByTagName("error")[0].getAttribute("code");
+
+ var err = new Error(errMsg);
+ err.code = errCode;
+
+ if (__myself.errorHandler) {
+ __myself.errorHandler(err);
+ }
+ else {
+ throw err;
+ }
+ }
+ // ensure the errors are propagated
+ else if (prevException != undefined ) {
+ throw prevException;
+ }
+ else {
+ throw new Error("XMLHttpRequest error. STATUS: " + xhr.status + " STATUS TEXT: " + xhr.statusText);
+ }