我正在使用Angular http模块v4.4.6。当Angular应用程序(客户端)向服务器发送PUT请求(使用HttpClient
),并且服务器响应状态200(OK)而主体中没有任何数据时,有角度的http模块会抛出HttpErrorResponse
这是一个正确的功能还是一个错误? 如何在没有任何数据的情况下处理PUT响应?
详细信息:
在最近的版本中,我使用了普通Http
模块及其方法put()。在那里,我需要调用res.json()
来获取正文中的JSON数据。 put()方法返回Observable<Response>
。
现在我使用较新的HttpClient
及其put()方法。此方法返回Observable<Object>
。似乎json()
方法在内部调用并导致我看到的错误。
'Content-Type': 'application/json'
创建PUT请求。这会产生HTTP PUT请求标头Accept:application/json, text/plain, */*
)。
HttpErrorResponse {headers: HttpHeaders, status: 200, ...
error:
error: SyntaxError: Unexpected end of JSON input at ..
text: ""
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: ...
message: "Http failure during parsing for ...
name: "HttpErrorResponse"
ok: false
status: 200
statusText: "OK"
url: ...
答案 0 :(得分:5)
@yonexbat,谢谢你是对的。
如果使用....
const response = this.http.put(url, data, { responseType: 'text'}).toPromise();
......问题解决了。
答案 1 :(得分:0)