2016-09-21 29 views
2

Angular2可以通過http方法刪除發送json主體嗎?Angular 2 Http delete在主體中發送json

我嘗試它,它說錯誤

ORIGINAL EXCEPTION: options.search.clone is not a function 

service.ts

deletetag(tagid: number): Observable<any> { 

    let body = JSON.stringify(
     { 
      "token": "test", 
      "content": { 
       "tagId": tagid 
      } 
     } 
    ); 

    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.delete("http://localhost:8080/backend/tag", body, options) 
     .map(res => this.extractData(res)) 
     .catch(this.handleError); 
} 

component.ts

this.tagService.deletetag(1) 
    .subscribe(
     data => { }, 
     error => { }, 
    () => { } 
    ); 

回答

9

RequestOptionsArgs interfaceHttp delete功能的說法,我認爲你需要發送刪除請求如下:

deletetag(tagid: number): Observable<any> { 

    let body = JSON.stringify(
     { 
     "token": "test", 
     "content": { 
     "tagId": tagid 
     } 
    } 
); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ 
    headers: headers, 
    body : body 
    }); 

    return this.http.delete("http://localhost:8080/backend/tag", options) 
     .map(res => this.extractData(res)) 
     .catch(this.handleError); 
} 
+0

這是工作。謝謝:D –

+0

儘管這可能會有角度,但您可能會遇到以下問題:https://stackoverflow.com/a/25237188/3806701 –

+0

在Angular 5中,請求選項已被取消,請參閱https:// angular .IO/API/HTTP/RequestOptions –