如何从Ionic到Restfull API(Codeigniter)发布数据?

时间:2018-07-16 11:59:05

标签: php angular codeigniter typescript ionic3

我在使用codeigniter将数据从ionic 3发布到restfull api时遇到问题,我不知道为什么,我在google中进行了查找,但都失败了。

这是Restfull api(codeigniter):

public function create_user() {
    $data = array(
        'id' => $this->input->post('id', TRUE),
        'name' => $this->input->post('name', TRUE),
        'email' => $this->input->post('email', TRUE)
    );

    $query = $this->model_user->create_user($data);
    if($query == false) {
        $outputData = (object)array(
            'status' => false,
            'msg' => 'Register Failed',
            'redirect' => null   
        );
    }else{
        $outputData = (object)array(
            'status' => true,
            'msg' => 'Register Success',
            'redirect' => 'home'  
        );
    }   

    $this->output($outputData);     
}

这是我的剧本(离子3):

Profile.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { ResProvider } from '../../providers/res/res';

@IonicPage()
@Component({
  selector: 'page-profile',
  templateUrl: 'profile.html',
})
export class ProfilePage {

  constructor(public navCtrl: NavController, public navParams: NavParams, public resProvider: ResProvider) {
  }

  registerForm() {
      this.resProvider.postRegister()
          .then(data => {
            console.log(data);
          });
  }

}

res.ts

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

@Injectable()
export class ResProvider {

    constructor(public http: HttpClient) {
        console.log('Hello ResProvider Provider');
    }

    postRegister() {
        let params = {
            'id': 11,
            'name': 'frank',
            'email': 'frank@gmail.com'
        };

        return new Promise((resolve, reject) => {
            this.http.post('http://localhost/api/user/create_user', params)
                .subscribe(res => {
                    resolve(res);
                }, (err) => {
                    reject(err);
                });
        });
    }
}

请任何人帮助我解决这个问题,我必须再2天在我的演讲中收集这项职责。

谢谢。

1 个答案:

答案 0 :(得分:0)

postRegister() {

  let headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});

  var form = new FormData();
  form.append("id", "11");
  form.append("name", "frank");
  form.append("email", "frank@gmail.com");


    return new Promise((resolve, reject) => {
        this.http.post('http://localhost/api/user/create_user', form,{headers:headers})
            .subscribe(res => {
                resolve(res);
            }, (err) => {
                reject(err);
            });
    });
}
  

this.http.post('http://localhost/api/user/create_user',形式)

codeigniter缺陷仅接受表单数据