如何使用http在angular2中创建请求?

问题描述:

我正在研究这个angular2应用程序,我正在做CRUD操作。如何使用http在angular2中创建请求?

我有http制作get & post请求。

我想立即执行put操作,但找不到任何相关的内容。

任何输入?

谢谢。

+0

this.http.put()?不起作用? – Ajey

+0

它的工作原理,但我想知道这样做的语法和参数? –

+0

它具有与POST完全相同的语法https://github.com/angular/angular/blob/master/modules/%40angular/http/src/http.ts –

如果你已经熟悉了POST,然后

POST之间唯一的区别和PUT请求字面上UT而不是OST, 它只是一个verb,对于前端ATLEAST。

Angular Docs (have to make it complicated)

// Update existing Hero 
private put(hero: Hero) { 
    let headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 

    let url = `${this.heroesUrl}/${hero.id}`; 

    return this.http 
      .put(url, JSON.stringify(hero), {headers: headers}) 
      .map(res => res.json()); 
} 

记住 - 观测量可以偷懒(如:角的Http要求),所以你需要订阅它们赚的要求执行,即使你不想来处理回应。 - @ user2171669

+0

这工作正常,但res.json不工作我 –

+2

你需要从你的服务返回JSON字符串,使'res.json()'工作,如果没有返回任何东西,那么你不需要'.map(res => res.json());' –

+6

@Ankit Singh Observables是懒惰的,所以你需要订阅它们来使请求执行,即使你不想处理响应。 – user2171669

//For .map(res => res.json()); 
    //solution is below.. 
     private updateProduct(product: IProduct, options: RequestOptions):  Observable { 
     const url = `${this.baseUrl}/${product.id}`; 
     let headers = new Headers(); 
     headers.append('Content-Type', 'application/json') 
     return this._http.put(url, JSON.stringify(product), {headers: headers}) 
       .map(() => product) 
       .do(data => console.log('updateProduct: ' + JSON.parse(JSON.stringify(data || null)))) 
      .catch(this.handleError); 
     } 
    //But I am unable to update any record....