@Ibishka

Почему ajax возвращает null?

У меня есть 2 проекта, 1 это фронт на React и 2 бек на php. В беке есть файл logged.php в нем
session_start();
echo json_encode($_SESSION['logged']);

Изначально в сессию для теста положил значение "user"
когда на него перехожу пишет "user" все гуд.
Но когда на него делаю fetch запрос мне возвращает null
В чем промлема?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
@dzhebrak
session_start() или стартует новую сессию, либо возобновляет существующую. Для второго варианта php должен знать идентификатор сессии, который или хранится в cookies (PHPSESSID), или передается как параметр url. В случае запроса с помощью fetch вы не передаете ни первое, ни второе, поэтому php начинает новую чистую сессию, в которой переменная logged не определена.

https://www.php.net/manual/ru/session.examples.bas...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@zkrvndm
Софт для автоматизации
При отправке запроса на другой домен fetch не передает куки, а без куков ваш сервер не может определить пользователя. Подробнее тут:
https://learn.javascript.ru/fetch-api#credentials
Вам нужно указать параметр credentials равным include, при этом для корректной работы сервер у вас должен отдавать заголовок Access-Control-Allow-Credentials.

Сам с собой это только если ваш сайт и бэкенд на разных доменах. Если они на одном и том же домене, но ошибка сохраняется, ищите причину на серваке или попробуйте для начала заюзать XMLHttpRequest.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 16:12
2000 руб./за проект
25 апр. 2024, в 16:08
100000 руб./за проект