Я создал остальной APi для своего сайта. Методы GET работают нормально. Для метода POST api не получает обратно отправленные данные. Я написал этот код, но он дает ошибку из-за Примечание: попытка получить свойство не-объекта в
$response = file_get_contents('http://myapi.com/object/post.php');
$data = json_decode($response);
$object->id = $data->id;
$object->name = $data->name;
Рекомендуется использовать интерфейс, такой как запросы на публикацию jquery, он поможет вам в будущем.
Или лучше, чем jQuery, использовать fetch как встроенную функцию браузера :) Пусть фронтенд сделает свою часть ...
возможный дубликат: stackoverflow.com/questions/2445276/…






Вы можете просто использовать file_get_contents для URL-адреса GET, но для получения данных с URL-адреса POST вам необходимо использовать CURL:
<?php
$post = [
'postData1' => 'datavalue1',
'postData2' => 'datavalue2'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://myapi.com/object/post.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
$data = json_decode($response);
$object->id = $data->id;
$object->name = $data->name;
Спасибо за ответ. В $ post = ['postData1' => 'datavalue1', 'postData2' => 'datavalue2']; postData1, postData2 будут моими переменными. Как я получу datavalue1, datavalue2. Будет ли это $ post = ['postData1' => $ _POST ['postData1'], 'postData2' => $ _POST ['postData1']];
Да, это переменные, которые вы, возможно, захотите отправить по URL-адресу, и вы можете присвоить им значения, как вы сказали выше.
Использование POST в file_get_contents объясняется в документации PHP. На странице руководства http://php.net/manual/en/function.file-get-contents.php:
<?php
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>
используйте CURL для запросов. file_get_contents бесполезен. Вы получаете ошибку из-за того, что
$dataимеет значение null.