2017-02-16 6 views
0

Мне нужно сделать запрос на удаление, который принимает 2 параметра, но я не уверен, как это сделать.Угловой 2 - Удалить запрос с параметрами

мой код выглядит следующим образом:

public deleteDefinition(typeName: string, id: number) { 
    console.log("in API call"); 
    const path = `${this.apiEndpoint}/Definition/Delete/`; 
    return this.http.delete(path, typeName, id) 
     .map((response: Response) => response.json()) 
     .catch(this.handleError); 
} 

Но я продолжаю получать errror

Прилагаемые параметры не соответствуют какой-либо подписи цели вызова.

Что не так с моим синтаксисом?

Заранее благодарен!

+1

Подпись: http.delete (url, options) '. Вы должны указать «id» в URL-адресе. Что касается параметра 'typeName', я не знаю, что это значит. – AngularChef

+0

@AngularFrance хорошо, поэтому я изменил свой путь переменной, чтобы включить params, и теперь я делаю 'return this.http.delete (path)', однако ничего не происходит. в моей консоли я даже не вижу запроса, так как он вообще не выполняет вызов? – Nicolas

+2

Наблюдения выполняются ** только при их подписке **. Можете ли вы подтвердить, что где-то в вашем коде есть что-то вроде 'XXX.deleteDefinition (a, b) .subscribe()'? – AngularChef

ответ

1

Передача сообщения тела в действие HTTP DELETE в настоящее время не поддерживается в Angular 2. HTTP DELETE вызовы также не предназначены для отправки с дополнительной информацией в теле.

Одним из решений было бы изменить структуру URL-адресов, поэтому вам не нужно предоставлять информацию в теле.

Другим решением является использование POST вместо DELETE. POST позволяет вам предоставить тело сообщения.