0

我有一个问题,当我发布数据到我的API服务器。Ionic 2 HTTP.post不发送数据

我的api服务器没有得到任何数据,它从离子应用程序发送。

这是我的api提供商。

import { Injectable } from '@angular/core'; 
import { HTTP } from 'ionic-native'; 
import 'rxjs/add/operator/map'; 


@Injectable() 
export class APIProvider { 

    constructor() {} 

    getProduct(){ 
    return new Promise(resolve => { 
     let header = {"Content-Type": "application/json"} 

     let body = { 
     "data_1": "1234567890123", 
     "data_2": "125615" 
     } 

     HTTP.post('https://ex.com/api/somethig', JSON.stringify(body), header) 
     .then(data => { 
     console.log(data.status); 
     console.log(data.data); // data received by server 
     console.log(data.headers); 
     resolve(data); 
     }) 
     .catch(error => { 
     console.log(error.status); 
     console.log(error.error); // error message as string 
     console.log(error.headers); 
     resolve(error); 
     }); 
    }); 
    } 
} 

在API服务器(PHP),我尝试vardump($_POST); /但它返回array(0) {}

控制台登录

[15:20:15] console.log: 200 
[15:20:15] console.log: array(0) { } 
[15:20:15] console.log: [object Object] 

系统信息:

  • 科尔多瓦CLI:6.5.0
  • Ionic Framework版本:2 .0.0
  • 离子CLI版本:2.2.1
  • 离子应用程序库版本:2.2.0
  • 离子应用脚本版本:1.0.0
  • IOS部署版本:未安装
  • IOS-SIM版本:未安装
  • OS:MacOS的塞拉利昂
  • 节点版本:v6.9.5
  • 的Xcode版本:8.2.1的Xcode版本构建8C1002

回答

0

Ahhhh,我找到了答案。

刚刚更改"Content-Type": "application/json""Content-Type": "application/x-www-form-urlencoded"

0

尝试使用'@ angular/http'。

import { Http, Headers } from '@angular/http'; 

constructor(public http: Http) {} 
let body = { data_1: "1234567890123", data_2: "125615" }; 

return new Promise((resolve, reject) => { 
    let headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 
    this.http.post('https://ex.com/api/somethig', JSON.stringify(body), {headers: headers}) 
    .subscribe(res => { 
     resolve(res); 
    }, (err) => { 
     reject(err); 
    }); 
}); 
+0

它得到了'console.error:响应状态:0为URL:null' – ThunderBirdsX3