如何处理 Angular HttpClient.post 作为字符串返回?

cha*_*r m 1 typescript angular angular-httpclient

我在网上找到的所有例子都是这样的:

createArticle(article: Article): Observable<Article> {
     return this.http.post<Article>(this.url, article);
}
Run Code Online (Sandbox Code Playgroud)

因此他们假设 Web API 的响应包含 Article。如何编写上面的内容以便将文章发布到 Web API 并且响应是字符串?

Hil*_*ard 5

我遇到了这个解决方案,它完美地解决了我的问题。

更改返回类型是不够的,您需要将标头添加到您的请求中,如下所示:

 createArticle(article: Article): Observable<any> {
    
        var headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8');
    
        return this.http.post<any>(this._url, article, { headers, responseType: 'text' as 'json' })
            .pipe(catchError(err => {
                console.log(err);
                return Observable.throw(err);
            }));
}
Run Code Online (Sandbox Code Playgroud)