首页 > 解决方案 > 修复 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());
}
}

标签: angularionic-frameworkangular-cliangular9

解决方案


下面应该工作注意以下更改

  • 改为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})
}


推荐阅读