Используя 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 на мой веб-сервер, все в порядке, и я получаю ожидаемый ответ.
Надеюсь, все было ясно!Заранее спасибо.