Расширение JQuery AJAX успеха во всем мире
Я пытаюсь создать глобальный обработчик, который вызывается до обратного вызова ajax success. Я делаю много вызовов ajax с моим приложением, и если это ошибка, я возвращаю определенную структуру, поэтому мне нужно что-то запустить до успешного выполнения, чтобы проверить данные ответа, чтобы увидеть, содержит ли он бит кода ошибки, например 1 / 0
Образец ответа
{"code": "0", "message": "your code is broken"}
или же
{"code": "1", "data": "return some data"}
Я не могу найти способ сделать это в jQuery из коробки, посмотрел на prefilters, ajaxSetup и другие доступные методы, но они не совсем справляются, ставки, которые я могу придумать, это взлом самого метода ajax немного:
var oFn = $.ajax;
$.ajax = function(options, a, b, c)
{
if(options.success)
{
var oFn2 = options.success;
options.success = function(response)
{
//check the response code and do some processing
ajaxPostProcess(response);
//if no error run the success function otherwise don't bother
if(response.code > 0) oFn2(response);
}
}
oFn(options, a, b, c);
};
Я использовал это некоторое время, и он прекрасно работает, но мне было интересно, есть ли лучший способ сделать это, или что-то, что я пропустил в документах jQuery.