@SeregaZnam

Как получить в php файле данные от запроса fetch?

При отправке запроса через fetch передаю данные в body и задаю метод POST, но в php не могу поймать данные через глобальную переменную $_POST. Вопрос: Как получить данные из body в php?
fetch('./main.php', {
		method: 'post',
		body: "test=1"
	})  
	  .then(response => response.text())
	  .then(function(data) {  
	        console.log(data);  
	   })

// main.php
var_dump($_POST);
  • Вопрос задан
  • 4056 просмотров
Решения вопроса 1
@strelov1
file_get_contents('php://input')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
TommyV888
@TommyV888 Куратор тега PHP
-
Воспользуйтесь вот этой функцией:
function getFormData($method) {
 
    // GET или POST: данные возвращаем как есть
    if ($method === 'GET') return $_GET;
    if ($method === 'POST') return $_POST;
 
    // PUT, PATCH или DELETE
    $data = array();
    $exploded = explode('&', file_get_contents('php://input'));
 
    foreach($exploded as $pair) {
        $item = explode('=', $pair);
        if (count($item) == 2) {
            $data[urldecode($item[0])] = urldecode($item[1]);
        }
    }
 
    return $data;
}

Взято отсюда
Ответ написан
KpuTuK
@KpuTuK
I love PHP
Вам нужен GET а не POST
Ответ написан
@ZardoZAntony
программист, сис. админ
Нужно подготовить fetch для бэка.
Вот таким образом обработка на бэке не отличается от обычного Ajax запроса:

form - форма с данными.
const formData = new URLSearchParams(new FormData(form)).toString();

const options = {
    method: 'post',
    body: formData,
     headers: {
           'X-Requested-With': 'XMLHttpRequest',
            'content-type': 'application/x-www-form-urlencoded'
      },
}; 

fetch(url, options)
.then(...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 14:12
30000 руб./за проект
19 апр. 2024, в 14:10
500 руб./за проект