AngularJS Обработка ошибок на основе кода состояния - PullRequest
0 голосов
/ 16 мая 2019

в моем текущем angularJS, я обрабатывал ошибку, всякий раз, когда происходит ошибка, это происходит через одну ошибку, но мне не нужно вот так:

Я хочу, чтобы при 400 (Bad Request) произошла ошибка, она должна появиться через сообщение типа " Ваши отправленные данные уже существуют, попробуйте другие данные"

и когда net::ERR_CONNECTION_REFUSED через MSG должно появиться сообщение "Вы не подключены к интернету"

вот мой текущий фрагмент:

  $scope.formModel = {}; // It will post data and handle both success and error, 
  $scope.onSubmit = function () {
      $http.post('http://127.0.0.1:8000/api/v1/contact/', $scope.formModel)
      .then(function(response){
        $scope.successPost = 'You have successfully submitted your Contact';
        $timeout(function(){
          $scope.successPost = '';
        },4000);
        $scope.contacts.push(response.data);
      }, function(response){
        $scope.errorPost = 'Ooops! An Error Ocuured saving your contact, please try again later';
        $timeout(function(){
          $scope.errorPost = '';
        },6000);
      });
      $scope.formModel = {};
      $scope.addContactForm.$setPristine(); 
  };

Выше фрагмента, из-за ошибки для любого типа ошибки, но мне нужно указать, какая именно ошибка произошла, как я могу это сделать?

1 Ответ

0 голосов
/ 17 мая 2019

Статус предоставляется свойством status объекта response. Сообщение о состоянии предоставляется в виде свойства statusText объекта response.

  $scope.formModel = {}; // It will post data and handle both success and error, 
  $scope.onSubmit = function () {
      $http.post('http://127.0.0.1:8000/api/v1/contact/', $scope.formModel)
      .then(function(response){
        $scope.successPost = 'You have successfully submitted your Contact';
        $timeout(function(){
          $scope.successPost = '';
        },4000);
        $scope.contacts.push(response.data);
      }, function(response){
        $scope.errorPost = 'Ooops! An Error Ocuured saving your contact, please try again later';
        if (response.status == 400) {
            $scope.errorPost = "Your submitted data already exist, please try with another data";
        };
        if (response.status == 500) {
            $scope.errorPost = "You are not connected with internet";
        });
        console.log("Error status",response.status);
        console.log("Error message",response.statusText);
        $timeout(function(){
          $scope.errorPost = '';
        },6000);
      });
      $scope.formModel = {};
      $scope.addContactForm.$setPristine(); 
  };

Из документов:

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

  • data - {string|Object} - Тело ответа, преобразованное с помощью функций преобразования.
  • status - {number} - код состояния HTTP ответа.
  • заголовки - {function([headerName])} - Функция получения заголовка.
  • config - {Object} - Объект конфигурации, который использовался для генерации запроса.
  • statusText - {string} - текст статуса HTTP ответа.
  • xhrStatus - {string} - Состояние запроса XMLHttpRequest (complete, error, timeout или abort).

Для получения дополнительной информации см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...