Почему при отправке данных из JavaScript с помощью fetch запрос нельзя выполнить PHP код?

Как настроить скрипт PHP для обработки данных, отправляемых из JavaScript с использованием fetch?
  • 12 августа 2024 г. 4:03
Ответы на вопрос 2
При отправке данных из JavaScript с помощью fetch запроса, данные передаются на сервер в виде HTTP запроса. PHP, как серверный язык программирования, выполняется на стороне сервера и обрабатывает запросы только после их получения. Поэтому PHP код не может быть выполнен на стороне клиента (в браузере), где работает JavaScript.

Для настройки скрипта PHP для обработки данных, отправляемых из JavaScript с использованием fetch, необходимо сначала создать скрипт PHP, который будет принимать и обрабатывать отправленные данные. Ниже приведен пример простого скрипта PHP для обработки POST запроса:

```php
<?php
// Получаем данные из POST запроса
$data = json_decode(file_get_contents("php://input"));

// Обрабатываем данные
$result = "Вы отправили следующие данные: " . $data->message;

// Отправляем обратно обработанные данные
echo json_encode($result);
?>
```

Для отправки данных из JavaScript с использованием fetch запроса и их обработки на сервере с помощью вышеприведенного скрипта PHP, можно использовать следующий код:

```javascript
const sendData = { message: 'Hello from JavaScript' };

fetch('script.php', {
  method: 'POST',
  body: JSON.stringify(sendData),
  headers:{
    'Content-Type': 'application/json'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});
```

В данном примере, отправляется POST запрос на скрипт PHP `script.php`, с данными в формате JSON. Серверный скрипт PHP принимает данные, обрабатывает их и отправляет обратно обработанные данные в формате JSON. На клиенте, в JavaScript, обработанные данные выводятся в консоль.
В  message.php: <br/> <pre><code class="php">var_dump(date('d.m.Y H:i:s'));
var_dump($_POST);
exit();</code></pre> <br/> Посмотрите, меняется ли время и содержание поста. Если один раз, а потом не меняется, то копайте заголовки кеша для браузера.
Похожие вопросы