Как исправлен метод DELETE с Angular 5 - PullRequest
0 голосов
/ 27 сентября 2018

Я разрабатываю CRUD в своем приложении с Angular 5, метод GEt и POST работает, но метод DELETE не работает (удаляет динамические данные), у меня есть эта ошибка:

 DELETE http://172.16.47.34:8282/MyProject.webservices/api/Roles?UID={UID} 500 (Internal Server Error)

как исправленоэта ошибка и благодарность

это мой код .html:

....
(click)="onDelete()"
...

и это мой код .ts:

export interface Role {
  RoleName: string;
}

@Component({
  selector: 'app-role',
  templateUrl: './role.component.html',
  styleUrls: ['./role.component.css']
})
export class RoleComponent implements OnInit, AfterViewInit {
  private roles: any;
  constructor(private _roleService: RoleService, private http: HttpClient) { }

  onSubmit(role: Role) {
    return this.http.post('http://172.16.47.34:8282/MyProject.webservices/api/Roles', role).subscribe(status => console.log(JSON.stringify(status)));
  }

  onDelete(role: Role) {
    return this.http.delete('http://172.16.47.34:8282/MyProject.webservices/api/Roles?UID={UID}', role).subscribe(status => console.log(JSON.stringify(status)));
  }

  onUpdate(role: Role) {
    return this.http.put('http://172.16.47.34:8282/MyProject.webservices/api/Roles', role).subscribe(status => console.log(JSON.stringify(status)));
  }

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Как уже упоминал Pratap AK, вы должны вызывать метод delete другим способом.Подробнее см. Angular Docs .

Вот пример:

onDelete(role: Role) {
  const url = `http://172.16.47.34:8282/MyProject.webservices/api/Roles?UID=${role.id}`;
  return this.http.delete(url).subscribe(status => 
    console.log(JSON.stringify(status))
  );
}
0 голосов
/ 27 сентября 2018

вы не можете передать объект в запросе DELETE, что означает, что запрос на удаление не может иметь тело

ниже неверно

onDelete(role: Role) {
    return this.http.delete('http://172.16.47.34:8282/MyProject.webservices/api/Roles?UID={UID}', role).subscribe(status => console.log(JSON.stringify(status)));
  }

вместо этого оно должно быть похоже на

onDelete(role: Role) {
    return this.http.delete('http://172.16.47.34:8282/MyProject.webservices/api/Roles?UID={UID}').subscribe(status => console.log(JSON.stringify(status)));
  }

или

onDelete(role: Role) {
    return this.http.delete('http://172.16.47.34:8282/MyProject.webservices/api/Roles?UID={UID}', {headers: headersVariable}).subscribe(status => console.log(JSON.stringify(status)));
  }
...