Массив $_POST не заполняется

Рейтинг: 0Ответов: 1Опубликовано: 30.07.2023

С помощью JS выполняю запрос к файлу redirect.php

addTaskButton.addEventListener('click', () => {
    console.log('addTask button clicked');
    postData('redirect.php', {'res': 'addTask'}).then((data) => {
        console.log(data.res);
    })
})

Сама функция postData

//// Определяем функцию которая принимает в качестве параметров url и данные которые необходимо обработать
const postData = async (url = '', data = {}) => {
    // Формируем запрос
    const response = await fetch(url, {
        // По умолчанию метод GET
        method: 'POST',
        // Заголовок
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    });
    return await response.json();
}

Файл redirect.php.

<?php
$res = $_POST;
//$res = json_encode($res);
var_dump($res);
?>

Для начала хочу хотя бы вернуть массив $_POST, но он пустой. Запрос Ответ Все работает на Docker

Ответы

▲ 0

На основании комментария InDevX, функцию postData переделал так:

//// Определяем функцию которая принимает в качестве параметров url и данные которые необходимо обработать
const postData = async (url = '', data = {}) => {
    // Формируем запрос
    const response = await fetch(url, {
        // По умолчанию метод GET
        method: 'POST',
        // Заголовок
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: JSON.stringify(data)
    });
    return await response.json();
}

Заработало, массив $_POST заполнился