angular - 修复 angular http 升级 ionic
问题描述
这是一个旧的角度代码,我在 Http、Headers、RequestOptions 上遇到错误。
有人可以帮我解决这个问题并获得相同的功能。提前致谢。
我使用“从'@angular/common/http'导入{HttpClient,HttpHeaders,HttpRequest};”
但有些功能在这里仍然无法正常工作“让选项=新的HttpRequest({标头:标头});”
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class PostProvider {
server: string = "http://localhost/server_api/"; // default
constructor(public http : Http) {
}
postData(body, file){
let type = "application/json; charset=UTF-8";
let headers = new Headers({ 'Content-Type': type });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.server + file, JSON.stringify(body), options)
.map(res => res.json());
}
}
解决方案
下面应该工作注意以下更改
- 改为
import {Http} from '@angular/http'
_import {HttpClient} from '@angular/common/http'
- 删除
JSON.stringify
,因为这里没有必要 - 删除
map(res => res.json())
默认情况下,角度映射返回一个对象。我添加了类型转换<any>
以返回any
可观察的类型。你可以改变这个
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable()
export class PostProvider {
server = "http://localhost/server_api/";
constructor(public http : HttpClient) { }
postData(body, file) {
const headers = new HttpHeaders({
'Content-Type':"application/json; charset=UTF-8"
})
return this.http.post<any>(this.server + file, body, {headers})
}
推荐阅读
- webpack - 使用 webpack 配置减少构建时间
- python - 创建python环境时出现UnsatisfiableError
- django - 如何为一个域下的多个网站设置 nginx?
- mysql - 如何使用 mysql 命令解决问题?
- python - 如何在不使用熊猫的情况下根据python中的两列删除文件中的重复行?
- ruby-on-rails - 如何以编程方式订阅 messenger webhook
- python - 如何修改 url 或模型以查看模板中的图像(404 未找到)?
- dns - 是否可以在本地笔记本电脑 virtualbox centos 7 或 ubuntu 18.04 os 中添加真实域?
- java - 如何使用 java AWS lambda 将文件存储到 AWS S3?
- architecture - 这会是双状态机吗?