Ошибка http в методе удаления не работает должным образом - PullRequest
1 голос
/ 25 марта 2019

У меня есть одна проблема, когда я работаю с методом удаления HTTP. У меня есть URL, который делает поддельные API. и адрес такой:

private URL = 'http://jsonplaceholder.typicode.com/posts';

Я использую метод get и сохраняю его в переменной, имя которой является данными, и с помощью этого я динамически генерирую одну таблицу, например:

<table class="table table-bordered">
    <thead>
        <tr>
            <th>userId</th>
            <th>id</th>
            <th>title</th>
            <th>Tools</th>

        </tr>
        <tr>
            <th><input type="text" #userId></th>
            <th><input type="text" #id></th>
            <th><input type="text" #title></th>

        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let item of data">
            <td>{{item.userId}}</td>
            <td>{{item.id}}</td>
            <td>{{item.title}}</td>
            <td><button class="btn btn-warning" (click)="updateItem(item)">Update</button>
                <button class="btn btn-danger" (click)="deleteData(item)">Delete</button>
            </td>
        </tr>
    </tbody>
</table>

все мои методы прекрасно работают. Когда я хочу реализовать ошибку в моем файле TS, в методе deleteData у меня есть проблема. код ниже - deleteData в моем файле TS:

deleteData(item) {
       this.service.deletePost(item.id)
       .subscribe(
        response => {
        let index = this.data.indexOf(item);
        this.data.splice(index, 1);
        });    
}

Я также использую сервис для вызова моего сервиса удаления так:

  deletePost(id){
    return this.http.delete(this.url+'/'+id);
  }

моя проблема:

как вы знаете, вторым параметром метода подписки является ошибка, и я хочу проверить, что 404 не нашел ошибку в моей таблице. У меня есть код просто так:

deleteData(item) {
    this.service.deletePost(345)
      .subscribe(
        response => {
        let index = this.data.indexOf(item);
        this.data.splice(index, 1);

      },
       (error:Response) => {
         console.log(error)
         if(error.status == 404)
         {
           alert('404');
         }
         else{
          alert('unexpected is occered!');
          console.log(error);
         }

      });
}

в моем поддельном API у меня есть только 100 элементов, и последний идентификатор равен 100, когда я ставлю недопустимый идентификатор, такой как 345, я должен получить сообщение об отсутствии ошибки и затем обработать ее. но, к сожалению, этого не происходит, и элемент удаляется. что не так с моим кодом? спасибо заранее

1 Ответ

0 голосов
/ 25 марта 2019

JSONPlaceholder является фальшивым серверным API-сервером.Это на самом деле ничего не удалит с их сервера.

Таким образом, согласно их документации на Github , он всегда будет возвращать 200 в качестве ответа, если вы пытаетесь что-то удалить с сервера.

ЗдесьСкриншот

enter image description here

Надеюсь, это поможет!

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