javascript - Assigning a default function to an Ext.Ajax.request failure -


i make ton of ajax requests in application using ext.ajax.request. lot of times don't want or have time put in fancy error handling if request fails, end doing this:

    ext.ajax.request({         url: 'requesturl',         success: function (response) {             //request successful. stuff response         },         failure: function () {             ext.msg.alert('unknown error', 'please alert administrator.');         } 

i'm wondering if there's way can define default ajax request failure function don't have include failure parameter on every ajax request write.

you create own custom method on ext.ajax has default failure handler. in example mocked ext object simplicity.

//placeholder actual ext object purposes of demonstration  var ext = {    ajax: {      request: function (r) {        //simulate failure        r.failure();      }    },    msg: {      alert: function (title, message) {        var el = document.createelement('div');                el.innerhtml = title + ' - ' + message;        document.body.appendchild(el);      }    }  }    //add custom method ext.ajax  ext.ajax.requestwithdefaultfailure = function (r) {    r.failure || (r.failure = function () {      ext.msg.alert('unknown error', 'please alert administrator.');    });        ext.ajax.request(r);  };    //now make calls new method  ext.ajax.requestwithdefaultfailure({    url: 'requesturl',    success: function (response) {      //request successful. stuff response    }  });    ext.ajax.requestwithdefaultfailure({    url: 'anotherurl',    success: function (response) {      //request successful. stuff response    },    failure: function () {      ext.msg.alert('error', 'i specified failure handler, make sure use 1 instead of default.')    }  });

or, if want leave ext untouched, define own module helper methods , use that:

var exthelpers = {     ajaxrequestwithdefaultfailure: function (r) {     r.failure || (r.failure = function () {       ext.msg.alert('unknown error', 'please alert administrator.');     });      ext.ajax.request(r);   }; }; 

Comments