@Ibishka

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

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

Изначально в сессию для теста положил значение "user"
когда на него перехожу пишет "user" все гуд.
Но когда на него делаю fetch запрос мне возвращает null
В чем промлема?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 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.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
24 сент. 2020, в 09:09
2000 руб./за проект
24 сент. 2020, в 08:35
50000 руб./за проект
24 сент. 2020, в 08:23
10000 руб./за проект