如何在angular2中使用http进行put请求?
问题的原因是无法更新记录,解决方法是使用`http.put()`方法来发送PUT请求。具体的解决方法如下:
1. 在函数中定义URL,用来指定要更新的记录的位置。
const url = `${this.baseUrl}/${product.id}`;
2. 创建一个Headers对象,并设置Content-Type为application/json。
let headers = new Headers(); headers.append('Content-Type', 'application/json')
3. 使用`http.put()`方法发送PUT请求,并传递URL、要更新的记录的JSON字符串以及Headers对象。
return this._http.put(url, JSON.stringify(product), {headers: headers})
4. 使用`.map()`方法将响应转换为JSON格式。
.map(() => product)
5. 使用`.do()`方法打印出更新后的记录。
.do(data => console.log('updateProduct: ' + JSON.parse(JSON.stringify(data || null)) ))
6. 使用`.catch()`方法处理错误。
.catch(this.handleError);
通过以上步骤,就可以使用Angular2的`http.put()`方法来发送PUT请求并更新记录了。
如何在Angular2中使用http进行put请求?
问题的原因:
- 在POST请求和PUT请求之间的唯一区别是字面上的"UT"而不是"OST",这只是一个前端的动词区别。
- Angular的文档使问题变得复杂。
解决方法:
- 首先创建一个具有正确Content-Type的请求头。
- 构建请求的URL。
- 使用http.put方法发送PUT请求,并传递请求头和要更新的数据。
- 使用.map方法将响应转换成JSON格式。
- 返回Observable对象。
另外需要注意的是:
- Observables是惰性的,所以需要订阅它们才能执行请求,即使不处理响应也需要订阅。
- 如果不返回任何内容,则不需要使用.map方法将响应转换成JSON格式。
- 在版本4中,不再需要使用JSON.stringify(),只需将对象添加到请求体中,Angular会自动处理。
- 在某些情况下,需要使用unsubscribe方法取消订阅。
以上就是如何在Angular2中使用http进行put请求的原因和解决方法。