@6ondawave9

Почему не передаётся значение в php из ajax запроса?

Уже час сижу и никак не могу понять почему в консоле пусто
const mes = "Text";
const url = "*ссылка на php скрипт*";
fetch(url , {
    method: 'POST',
    data: {"text" : mes}
}).then(res=>res.text()).then(rez=>console.log(rez));

<?php
echo  $_POST['text'];
?>
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Так как вы не передаете заголовок с контент типом, пхп не понимает что это пост, и ловить надо поток инпута.
var_dump(json_decode(file_get_contents('php://input', true)));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Ne7Le4Der
Потому что у fetch нет свойства data в options, оно называется body. Так же обратите внимание, если будете использоваться TypeScript - на попытку отправить объект в поле body - будет выдавать ошибку, не уверен отработает ли как нужно, если не обернуть в JSON.stringify(), лучше обернуть.

В итоге должно быть как-то так:
const mes = "Text";
const url = "*ссылка на php скрипт*";
fetch(url , {
    method: 'POST',
    body:  JSON.stringify({"text" : mes})
}).then(res=>res.text()).then(rez=>console.log(rez));
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы