@PavelSachenko

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

Как можно отправить данные, с помощью метода fetch, в php что бы они оказались в переменной $_POST.
В файле javascript имею код:
async function post(url) {
    let form = takeFormControl();
    let test = {name: "test"};
    let response = await fetch(url, {
        method: 'post',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(test),
    });
    let result = await response.json();
    console.log(result);
}


function takeFormControl(){
    let form =  document.querySelector(".form-control");
    form.addEventListener("click", (e) => {
        e.preventDefault();
    });
    return form;
}


код на php:
if (isset($_POST['name'])){
    echo json_encode(['status' => 'good', $_POST]);
}else{
    echo json_encode(['status' => 'bad', $_POST, $_REQUEST]);
}

Результатом постоянно является: "status - bad", а в переменных ничего нету
  • Вопрос задан
  • 424 просмотра
Решения вопроса 1
origami1024
@origami1024
went out for a night walk
$_POST['name'] - это распозналось бы если бы ты отправил переменную как form_data
Ты отправляешь просто raw данные
Чтобы посмотреть что ты получаешь на вход в PHP используй
file_get_contents('php://input')

P. S. json_decode на это не сработает, так как не валидный json.
Валидный json выглядит так: {"name": "test"}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы