Ошибка ответа Web API 304 ‘Not Modified’, как игнорировать в Angularjs

#angularjs

#angularjs

Вопрос:

Я сталкиваюсь с небольшой проблемой, мой веб-API возвращает мне ответ 304 ‘Not Modified’, когда нет изменений в данных, отправляемых для обновления, и в моем приложении реализованы страницы ошибок, которые перенаправляют меня на страницу ошибки. Я хочу, чтобы это не отображалось как ошибка, вместо этого это следует игнорировать.

пожалуйста, помогите мне, как игнорировать этот ответ с помощью HTTP-перехватчиков. Ниже написан код, который перехватывает HTTP-ответы, а затем перенаправляет меня на определенную страницу на основе ошибки, мне нужно игнорировать ответ 304 здесь:

 myApp.factory('httpErrorResponseInterceptor', ['$q', '$location',
  function ($q, $location) {
      return {
          response: function (responseData) {
              return responseData;
          },              

          responseError: function error(response) {

              switch (response.status) {
                  case 401:                          
                      $location.path(baseUrl   'Account/Login');
                      break;
                  case 403:
                      $location.path(baseUrl   '403');
                      break;
                  case 404:
                      $location.path(baseUrl   '404');
                      break;
                  case 405:
                      $location.path(baseUrl   '405');
                      break;
                  case 500:
                      $location.path(baseUrl   '500');
                      break;
                  case 503:
                      $location.path(baseUrl   '503');
                      break;
                  case 408:
                      $location.path(baseUrl   'timeout');
                      break;
                  default:
                      $location.path(baseUrl   'error');
              }

              return $q.reject(response);
          }
      };
}
]);
  

Комментарии:

1. Покажите нам ваше «приложение внедрило страницы ошибок, которые перенаправляют меня на страницу ошибки».. В принципе, вы можете перехватить и проверить статус 304 и сделать, если еще можно это проигнорировать.

2. Я использую HTTP-перехватчик, и я должен игнорировать ответ здесь.

Ответ №1:

Я нашел решение игнорировать ответ ошибки 304 ‘Not Modified’, написав этот код:

 //ignore 304-'Not Modified' response
if (response.status === 304) {
   return $q.resolve(response);
}
  

и полное решение будет следующим:

 smartBizzApp.factory('httpErrorResponseInterceptor', ['$q', '$location',
  function ($q, $location) {
      return {
          response: function (responseData) {
              return responseData;
          },              

          responseError: function error(response) {

              //ignore 304-'Not Modified' response
              if (response.status === 304) {
                  return $q.resolve(response);
              }

              switch (response.status) {
                  case 401:                          
                      $location.path(baseUrl   'Account/Login');
                      break;
                  case 403:
                      $location.path(baseUrl   '403');
                      break;
                  case 404:
                      $location.path(baseUrl   '404');
                      break;
                  case 405:
                      $location.path(baseUrl   '405');
                      break;
                  case 500:
                      $location.path(baseUrl   '500');
                      break;
                  case 503:
                      $location.path(baseUrl   '503');
                      break;
                  case 408:
                      $location.path(baseUrl   'timeout');
                      break;
                  default:
                      $location.path(baseUrl   'error');
              }

              return $q.reject(response);
          }
      };
}
]);