使用http.put()会导致:'400错误的URL异常请求'

时间:2016-10-11 07:58:09

标签: angular angular-http

update(url: string, data: Object): Promise<Application> {
    return this.http
        .put(url, JSON.stringify(data), {headers: this.headers})
        .toPromise()
        .then(() => data)
        .catch(this.handleError);
}

将上述功能与有效URL一起使用会导致以下异常:

EXCEPTION: Uncaught (in promise): Response with status: 400 Bad Request for URL: null

我正在使用@angular/http模块来执行请求。 关于这个问题的奇怪之处在于该模块的其他方法工作正常(GETPOSTDELETE)。

我使用以下标头'Content-Type': 'application/json'InMemoryWebApiModule来模拟回复。

使用硬编码值调用put函数(例如以下示例)会导致相同的异常。

this.http
        .put('app/applications/1', JSON.stringify(data), {headers: this.headers})
        .toPromise()
        .then(() => data)
        .catch(this.handleError);

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题。原因是我的数据没有名为 id 的字段,它唯一地标识每个项目。模块 @ angular / http 通过其id匹配请求的数据。