在app.module.ts 中引入

    1. import {HttpClientModule} from '@angular/common/http';
    2. imports: [
    3. BrowserModule,
    4. HttpClientModule
    5. ]

    在用到的地方引入HttpClient

    1. import {HttpClient} from "@angular/common/http";
    2. constructor(public http:HttpClient) { }

    get数据

    1. var api = ".......";
    2. this.http.get(api).subscribe(response => {
    3. console.log(response);
    4. });

    post

    在用到的地方引入HttpClient、HttpHeaders

    1. import {HttpClient,HttpHeaders} from "@angular/common/http";
    2. constructor(public http:HttpClient) { }
    3. const httpOptions = {
    4. headers: new HttpHeaders({ 'Content-Type': 'application/json' })
    5. };
    6. var api = "....";
    7. this.http.post(api,{username:'张三',age:'20'},httpOptions).subscribe(response => {
    8. console.log(response);
    9. });

    jsonp

    在app.module.ts 修改

    1. import {HttpClientModule,HttpClientJsonpModule} from '@angular/common/http';
    2. imports: [
    3. BrowserModule,
    4. HttpClientModule,
    5. HttpClientJsonpModule
    6. ]

    用到的地方引入

    1. import {HttpClient} from "@angular/common/http";
    2. constructor(public http:HttpClient) { }
    3. var api = "......";
    4. this.http.jsonp(api,'callback').subscribe(response => {
    5. console.log(response);
    6. });

    http请求封装

    1. ionic g service services/common

    app.module.ts引入http相关模块

    1. import { HttpClientModule } from '@angular/common/http'
    2. imports: [ BrowserModule, HttpClientModule ]

    common.service.ts引入HttpClient

    1. import {HttpClient} from "@angular/common/http";
    2. constructor(public http:HttpClient) { }

    common.service.ts完整代码

    1. import { Injectable } from '@angular/core';
    2. import { HttpClient, HttpHeaders } from "@angular/common/http";
    3. @Injectable({
    4. providedIn: 'root'
    5. })
    6. export class CommonService {
    7. //设置一个域名,为了好维护
    8. public config:any={
    9. //域名:
    10. domain:'http://192.168.0.2:8080'
    11. }
    12. constructor(public http: HttpClient) {
    13. }
    14. //封装了一个get请求
    15. public ajaxGet(api) {
    16. var api = this.config.domain + api
    17. return new Promise((resolve, reject) => {
    18. this.http.get(api).subscribe((response) => {
    19. resolve(response);
    20. }, (err) => {
    21. reject(err);
    22. })
    23. })
    24. }
    25. //封装了一个post请求
    26. public ajaxPost(url:String, json:Object) {
    27. const httpoptions = {
    28. headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'})
    29. };
    30. var api = this.config.domain + url;
    31. return new Promise((resove, reject) => {
    32. this.http.post(api, json, httpoptions).subscribe((response) => {
    33. resove(response);
    34. }, (error) => {
    35. reject(error);
    36. })
    37. })
    38. }
    39. }

    appmodule.ts 引入配置

    1. import{CommonService} from './services/common.service';

    providers下面声明CommonService

    1. providers: [
    2. StatusBar,
    3. SplashScreen,
    4. CommonService,
    5. { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
    6. ],

    使用地方

    1. import {CommonService} from '../services/common.service'; //注意两个点
    2. constructor(public commonService: CommonService)
    3. getData(){
    4. var api='.....';
    5. this.commonService.ajaxGet(api).then((Response)=>{
    6. console.log(Response);
    7. })
    8. }