Я пытаюсь отправить http-запрос через http-пост в Ionic 4 на свой PHP-сервер через URL http://myexamplehost#1.com/api
, и он возвращает мне Notice : trying to get property of non object...
.
Когда я отправляю свои данные json через URL http://myexamplehost#1.com/api
через почтальона, все работает просто отлично. Я предполагаю, что мои данные JSON, отправленные через http пост в Ionic 4, как-то не так.
Поэтому я пытаюсь отправить свои данные json через другой URL-адрес https://myexamplehost#2.com/api
через http-пост в Ionic 4, и вот, он работает просто отлично.
Вот что json я отправил через почтальона:
{
"id": "",
"date": "2019-09-09",
"name": "jason"
}
А вот что я отправил через http пост в Ionic 4 page.ts:
mydata: Idata = {
id:string;
date:string;
name:string
}
saveData(){
this.dk.insertData(this.mydata).subscribe((result:any)=>{
console.log(result['_body']);
});
}
Вот как выглядит сервисный метод:
insertData(data:Idata){
return this.http.post(this.configUrl+'?ins=true',data,{
headers: { 'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT'
}
});
Вот как выглядит серверная часть:
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
print_r(json_encode($request));
// echo json_encode($request->name."-".$request->date);
// echo json_encode($request->tgl);
$result = $obj->insData("example_tb","null,'".date('Y-m-d',strtotime($request->date))."','".$request->name."'");
Так что я действительно хочу знать, это проблемы с CORS или проблемы с кодом в моей ситуации? Потому что я получаю сообщение об ошибке origin has been blocked by CORS policy
в консоли, хотя. Как мне решить эту проблему?