$ (document) .ajaxError не запускается на 401 - PullRequest
0 голосов
/ 27 мая 2019

У нас есть обработчик ошибок для отправки сообщения.

 $(document).ajaxError(function (e, xhr, options) {
  window.postMessage(....);  
});

Один из вызовов выборки возвращает 401

this.fetch = function(url) {
return fetch(url, { 
  }
}).then(function(response) {
  return response.json();
})

Когда я проверяю ответ, статус 401, ноresponse.json () выдает «Uncaught (в обещании) SyntaxError: неожиданный конец ввода JSON.» Из-за этого ajaxError не запускается.

Ожидаемое поведение: я хочу, чтобы document.ajaxError отправлял сообщение, если я не получаю статус 200 от вызова выборки.

У нас есть файл wrapper.js, который имеет переопределяющую функцию

 window.fetch = (function(arg) {


 }(window.fetch)

Могу ли я перехватить эти исключения глобально внутри этой функции?

1 Ответ

0 голосов
/ 11 июля 2019

В соответствии с комментариями я не смог сделать это на обработчике ajaxError, так как он не происходит из jquery.Я смог сделать это в оболочке Window.fetch

 window.fetch = (function (original)) {
  ...............

  return original.apply(this, args).then(function (response)) {

      if(response.status !== 200)
       {
           window.postMessage({ event_type: 'request:failed', status: response.status); 
       }   
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...