使用http.post()将数据发送到php作为服务器端

使用http.post()将数据发送到php作为服务器端,php,angular,codeigniter,Php,Angular,Codeigniter,我想在Angular2中使用http.post()将一个对象发送到后端,我使用了以下代码。我无法将数据发送到后端。用于使用codeigniter框架进行服务器端编程。我不知道代码有什么问题。我应该对m component.ts做哪些更改 组件。ts let headers = new Headers(); headers.append('Content-Type', 'application/json; charset=UTF-8'); let addcategory_body={ '

我想在Angular2中使用http.post()将一个对象发送到后端,我使用了以下代码。我无法将数据发送到后端。用于使用codeigniter框架进行服务器端编程。我不知道代码有什么问题。我应该对m component.ts做哪些更改

组件。ts

let headers = new Headers();
headers.append('Content-Type', 'application/json; charset=UTF-8');

let addcategory_body={
    'name':this.add_ser_name,
    'description':this.add_ser_name,
    'icon':'asfsdfdf.png'
}

this.http.post('http://www.viarchtechnologies.com/projects/coolmanz/index.php/ws/service', addcategory_body, {
    headers: headers
}).subscribe(res => {
    console.log('post result %o', res);
});
编辑

ws.php

public function service() {
$this->load->model('Coolmodel','m',true);
$retval = array();
$icon = '';
if($_POST) {
    $id = $this->input->post('id');
    $name = $this->input->post('name');
    $description  = $this->input->post('description');
    $active = $this->input->post('active');
    $deleted = $this->input->post('deleted');
    $display_order = $this->input->post('display_order');
    $icon = $this->input->post('icon');

    if($name == '') {
        $retval['status'] = '0';
        $retval['error'] = 'name missing';
    } else if($description == '') {
        $retval['status'] = '0';
       $retval['error'] = 'description missing';
    } else {
        if($active == '') {
            $active = 1;
        }
        if($deleted == '') {
            $deleted = 0;
        }
        if($display_order == '') {
            $display_order = $this->m->get_nextOrder_Service();
        }
        $data = array(
            'name' => $name, 
            'active' => $active, 
            'icon' => $icon,
            'description' => $description, 
            'deleted' => $deleted, 
            'display_order' => $display_order
        );
        $retval['status'] = '1';
        if($id == '') {
            $this->m->saveToDB('services', $data);
        } else {
            $data['modified'] = date('Y-m-d H:i:s');
            $this->m->updateDB('services', $data, 'id', $id);
        }
       //$user=$this->m->login($userlogin, md5($password));
    }
} else {
    $services = $this->m->get_services();
    $retServices = array();
    $i = 0;
    foreach($services as $service) {
        if($service['icon'] != '') {
            $service['icon'] = base_url().'images/'.$service['icon'];
        }
        $retServices[$i++] = $service;
    }
    $retval['status'] = '1';
    $retval['services'] = $retServices;
  }
  header('Content-Type: application/json');
  echo json_encode($retval, JSON_UNESCAPED_UNICODE);
 }
 [![Respose][1]][1]

问题是,在发送
httppost body
时,您需要
$\u POST
变量的值。body是
json
对象。你的功能服务现在不会

尝试以下操作:替换检查
POST
数据的
if
语句:

if($this->input->method() === 'post') {
    $obj = json_decode($this->input->raw_input_stream);
    $id = $obj->id;
    $name = $obj->name;
    $description  = $obj->description;
    $active = $obj->active;
    $deleted = $obj->deleted;
    $display_order = $obj->display_order;
    $icon = $obj->icon;
}

问题是,在发送
httppost body
时,您需要
$\u POST
变量的值。body是
json
对象。你的功能服务现在不会

尝试以下操作:替换检查
POST
数据的
if
语句:

if($this->input->method() === 'post') {
    $obj = json_decode($this->input->raw_input_stream);
    $id = $obj->id;
    $name = $obj->name;
    $description  = $obj->description;
    $active = $obj->active;
    $deleted = $obj->deleted;
    $display_order = $obj->display_order;
    $icon = $obj->icon;
}

有什么错误吗?http请求是否触发?我们需要更多信息来进行故障排除您是否遇到了类似于
cors
错误的问题?如果是,则必须在服务器端配置
cors
。否则,您需要更多关于确切错误的详细信息。请提供您有什么错误。另外,您的url有2个空格,这可能会导致问题…/coolmanz/index.php请提供您的错误:-|@LLai没有错误,有错误吗?http请求是否触发?我们需要更多信息来进行故障排除您是否遇到了类似于
cors
错误的问题?如果是,则必须在服务器端配置
cors
。否则,您需要更多关于确切错误的详细信息。请提供您有什么错误。此外,您的url有2个空格,这可能会导致问题…/coolmanz/index.php请提供您的错误:-|@LLai没有错误,请尝试并告知您的结果:-|+1请尝试并告知您的结果:-|+1