Ionic HttpClient不发送数据

时间:2018-02-22 16:13:45

标签: post ionic-framework get httpclient

这似乎不是我的错误,因为当我在离子服务中测试我的应用程序时,应用程序正确地发送和接收数据。然而,当我运行或构建应用程序并在手机上测试它时,它将接收数据而不发送任何数据。

我检查了远程调试,有效负载是假的。

我甚至尝试使用get而不是post,同样的事情发生在服务上而不是在构建或运行中。

这是我的离子信息

cli packages: (C:\Users\Myname\AppData\Roaming\npm\node_modules)

@ionic/cli-utils  : 1.19.1
ionic (Ionic CLI) : 3.19.1

global packages:

cordova (Cordova CLI) : 8.0.0

local packages:

@ionic/app-scripts : 3.1.8
Cordova Platforms  : android 6.1.1
Ionic Framework    : ionic-angular 3.9.2

System:

Android SDK Tools : 25.2.5
Node              : v9.2.0
npm               : 5.6.0
OS                : Windows 10

这是我的服务类的导入和设置

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class DataManager {

ep: string = "http://website.com/_endpoints/api/";

constructor(public http: HttpClient) {}

  get(command, data) {
    return new Promise((resolve, reject) => {
      this.http.get(this.ep + command + '?' + this.buildPost(data), )
        .subscribe(res => {
          resolve(res);
        }, (err) => {
          reject(err);
      });
    });
  }

  post(command, data) {
  return new Promise((resolve, reject) => {
  this.http.post(this.ep + command, JSON.stringify(data))
    .toPromise().then((response: any) => {
      resolve(response)
    });
  });

  buildPost(data) {
   let str = '';
   for (let k in data) {
     str += '&' + k + '=' + data[k];
    }
    return str;
  }
}

在服务器端我正在使用带有所需允许标头的PHP

2 个答案:

答案 0 :(得分:0)

确保您的服务器正确实现了CORS,您可能需要检查https://ionicframework.com/docs/wkwebview/#cors

我遇到了同样的问题,但我无法配置CORS,因此我最终使用了https://ionicframework.com/docs/native/http/

答案 1 :(得分:0)

问题是应用程序构建所需的全部是项目的新git拉,然后Http帖子工作完美。