При использовании this.http.post (). Then (data => {}), данные равны нулю - PullRequest
0 голосов
/ 14 ноября 2018

Используя Ionic v3, я пытаюсь опубликовать данные JSON на своем веб-сервере PHP, что-то с ним сделать и отправить результат в мое ионное приложение.Вот как я это делаю:

postData() {
//console.log(JSON.stringify(this.infos));
//console.log(typeof this.infos);

let headers = new Headers(
{
  'Content-Type' : 'application/json'
});
let options = new RequestOptions({ headers: headers });

this.http.post('MYURL', JSON.stringify(this.infos), options)
  .then(data => {

    console.log(data.status);
    console.log(data.data); // data received by server
    console.log(data.headers);

  })
  .catch(error => {

    console.log(error.status);
    console.log(error.error); // error message as string
    console.log(error.headers);

  });
}

Функция postData () вызывается при публикации формы в приложении.

И это мой код PHP:

<?php
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');

$postdata = file_get_contents("php://input");

/*if (isset($postdata)) {
  $pde = json_decode($postdata, true);
  echo json_encode($pde);
} else {*/
  $array = array(
    array(
      'test_key' => 'test_value'
    ),
    'test_key2' => 'test_value2',
    array()
  );

  echo json_encode($array);
//}

С этого момента, как вы можете видеть, я просто пытаюсь заставить его работать, чтобы значения были просто ерундой.

Когда я запускаю все с ionic cordova run android -l -c -s --debug, опубликуйте форму с приложением на моемтелефон, а затем посмотреть, что печатает терминал, значение данных равно нулю.

Если я раскомментирую строку //console.log(JSON.stringify(this.infos)); , я получу всю информацию, опубликованную в моей форме, поэтому проблема возникает изthis.http.post часть.

Я не понимаю, почему нет ошибки, и все же, все равно нулю (data.status, data.data и data.headers).Если я попытаюсь отправить его вручную через curl на моем терминале Linux на мой веб-сервер, все в порядке, и я получаю ожидаемый ответ.

Надеюсь, все было ясно!Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...