gpt4 book ai didi

angular - 将 Angular 5 中的 Http 升级到 HttpClient : "server responded with a status of 415 (Unsupported Media Type)"

转载 作者:太空狗 更新时间:2023-10-29 18:19:30 26 4
gpt4 key购买 nike

我已经将一个应用程序从 Angular 4.2 升级到 5,但是在将 Http 更改为 HttpClient 后,POST 请求出现错误:

error the server responded with a status of 415 (Unsupported Media Type)

app.module 中我导入了 HttpClientModule:

import { HttpClientModule } from '@angular/common/http';

旧代码:

 post(url: string, model: any): Observable<any> {
let body = JSON.stringify(model);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this._http.post(url, body, options)
.map((response: Response) => <any>response.json())
.catch(this.handleError);
}

新代码:

put(url: string, id: number, model: any): Observable<any> {
let body = JSON.stringify(model);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options: any = new RequestOptions({ headers: headers });
return this._http.put(url + id, body, options)
.catch(this.handleError); //only removed .map
}

谢谢

最佳答案

对我来说,当使用对象作为正文而不是对其进行字符串化时,它无需设置 Content-Type header 即可工作。我猜想使用字符串作为正文会让 Angular 假定“text/plain”作为内容类型而不是默认的“application/json”。

所以不要使用你的新代码:

return this._http.put(url + id, model).subscribe(..

关于angular - 将 Angular 5 中的 Http 升级到 HttpClient : "server responded with a status of 415 (Unsupported Media Type)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47292568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com