我的应用程序中有这部分代码

 addComment (body: Object): Observable<Comment[]> {
    //let bodyString = JSON.stringify(body); // Stringify payload
   let bodyString = JSON.parse(JSON.stringify(body || null ))
    let headers = new Headers({ 'Content-Type': 'application/json' }); // ... Set content type to JSON
    let options = new RequestOptions({ headers: headers }); // Create a request option

    return this.http.post(this.commentsUrl, bodyString, options) // ...using post request
                     .map((res:Response) => res.json()) // ...and calling .json() on the response to return data
                     .catch((error:any) => Observable.throw(error.json().error || 'Server error')); //...errors if any
}

当我试图在应用程序中添加注释时,它会抛出如下错误:
posthttp://localhost:4200/assets/comments.json404(未找到)
syntaxerror:位置0处json中出现意外的标记c
有人能帮我吗?
完全语法错误堆栈:
syntaxerror:位置0处json中出现意外的标记c
位于object.parse()
位于response.body.json(body.js:24)
在catchSubscriber.selector上(comment.service.ts:41)
at catchSubscriber.error(catch.js:104)
在MapSubscriber.Subscriber上出错(Subscriber.js:128)
在mapsubscriber.subscriber.error(subscriber.js:102)
在xmlhttprequest.onload上(xhr_backend.js:82)
在zonedelegate.webpackjsonp.1301.zonedelegate.invoketask(zone.js:363)
在object.onInvokeTask(ng_zone.js:264)
在zonedelegate.webpackjsonp.1301.zonedelegate.invoketask(zone.js:362)
在zone.webpackjsonp.1301.zone.runtask(zone.js:166)
在xmlhttprequest.zonetask.invoke上(zone.js:416)

最佳答案

我正面临着这个问题。
只需改变:

error.json()


JSON.parse(JSON.stringify(error))

08-17 10:16