Angular 6 http put方法不会更新数据

时间:2019-08-01 17:21:57

标签: angular

我最近开始使用Angular,一直在使用angular 6,并尝试将服务的http.put方法调用到我的组件之一中。没有错误,但没有更新。

  • CORS已启用。
  • 在邮递员上成功测试。
  • 正如所提到的一些在线教程,我正在订阅《 Observable》。

shared.service.ts:

`putTaskDetail(task: Task): Observable<Task> {    
const httpOptions = {headers: new HttpHeaders({ 'Content- 
Type':'application/json'}) };     
let constUrl = `${this.rootURL}`+'/UpdateTask';
return this.http.put<Task>(constUrl, task, httpOptions);    
}`

edit.component.ts:

`this.service.putTaskDetail(form.value).subscribe(
() => {          
this.toastr.success('Updated successfully.','Task Manager');
this.resetForm();
},
(err: HttpErrorResponse) => {
console.log(err.message + " " + err.name);
}
)`

请提示,代码中可能有什么错误。

1 个答案:

答案 0 :(得分:0)

您应该发布form.value,以便其他人可以帮助您进行调试。您还可以尝试更改创建http选项对象的方式,如下所示:

private createHttpOptions() {
        const headersMap = {
            'Content-Type': 'application/json',
        }   

        return {
            headers: new HttpHeaders(headersMap)
        };
    }

然后在您的put中传递createHttpOptions

return this.http.put<T>(url, data, this.createHttpOptions());

注意:如果要发送文件,则不需要发送headersMap