2016-09-15 3 views
0

Я использую Angular Interceptor, и я хочу получить сообщение из 500 ошибок (внутренняя ошибка сервера).Угловой перехватчик - получить сообщение от ошибки 500

Проблема заключается в том, что я получаю весь HTML в rejection.data в responseError внутри перехватчик (скриншот ниже).

Я прочитал, что мне нужно настроить web.config, но я все еще получаю весь HTML. Я просто хочу получить сообщение.

Возможно ли это?

Угловая Interceptor:

app.config(['$httpProvider', function ($httpProvider) { 

    $httpProvider.interceptors.push(function ($q, $rootScope) { 

     return { 
      request: function (config) { 

       //the same config/modified config/a new config needs to be returned. 
       return config; 
      }, 
      requestError: function (rejection) { 

       //Initializing error list 
       if ($rootScope.errorList == undefined) { 
        $rootScope.errorList = []; 
       } 

       $rootScope.errorList.push(rejection.data); 

       //It has to return the rejection, simple reject call doesn't work 
       return $q.reject(rejection); 
      }, 
      response: function (response) { 

       //the same response/modified/or a new one need to be returned. 
       return response; 
      }, 
      responseError: function (rejection) { 

       //Initializing the error list 
       if ($rootScope.errorList == undefined) { 
        $rootScope.errorList = []; 
       } 

       //Adding to error list 
       $rootScope.errorList.push(rejection.data); 

       //It has to return the rejection, simple reject call doesn't work 
       return $q.reject(rejection); 
      } 
     }; 
    }); 
}]); 

Web.Config

<system.webServer> 
    <httpErrors existingResponse="PassThrough" errorMode="Detailed"></httpErrors> 
</system.webServer> 

Image

Edit: Я хочу, чтобы получить сообщение от снимка исключения

Image2

+0

, что вы получаете в data.message? – Disha

+0

Ничего. Потому что в данных у меня есть целый HTML, как в 1-м изображении. Я сделал редактирование - взгляните. –

ответ

0

Я хочу получить сообщение от 500 ошибок (внутренняя ошибка сервера).

Используйте response.statusText, чтобы получить сообщение:

responseError: function (errorResponse) { 

    //Initializing the error list 
    if ($rootScope.errorList == undefined) { 
     $rootScope.errorList = []; 
    } 

    //Adding to error list 
    $rootScope.errorList.push(errorResponse.statusText); 

    //It has to return the rejection, simple reject call doesn't work 
    return $q.reject(errorResponse); 
} 

От Docs:

Объект ответа имеет следующие свойства:

  • данных - {string|Object} - тело ответа преобразованный функциями преобразования.
  • status - {number} - Код состояния HTTP для ответа.
  • заголовки - {function([headerName])} - Функция получения заголовка.
  • config - {Object} - Объект конфигурации, который использовался для генерации запроса.
  • statusText - {string} - HTTP-статус текста ответа.

- AngularJS $http Service API Reference -- General Usage

Смежные вопросы