Данные запроса Symfony4 пусты с вызовом ajax

Я новичок в Symfony4, так что, возможно, это нубский вопрос. Но не могу понять это из.

Я пытаюсь зарегистрировать пользователя с помощью ajax-вызова:

this.form.post('/register').then((response) => {
    console.info(response);
});

Тогда в symfony мой метод контроллера выглядит так:

/**
 * @Route("/register", name = "register", methods = {"POST"})
 * @param Request $request
 * @param UserPasswordEncoderInterface $passwordEncoder
 * @return JsonResponse
 */
public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
    $user = new User();
    // encode the plain password
    $user->setPassword(
        $passwordEncoder->encodePassword(
            $user,
            $request->request->get('password')
        )
    );

    $user->setEmail($request->request->get('email'));
    $user->setName($request->request->get('name'));

    $entityManager = $this->getDoctrine()->getManager();
    $entityManager->persist($user);
    $entityManager->flush();

    return $this->json(['success' => 'User created']);
}

Проблема в том, что данные всегда пусты. Данные отправляются корректно. Когда я добавляю ответ в свой контроллер, я вижу это:

Данные запроса Symfony4 пусты с вызовом ajax

Мои заголовки и т. д. выглядят так:

Данные запроса Symfony4 пусты с вызовом ajax

Полезная нагрузка запроса выглядит следующим образом:

Данные запроса Symfony4 пусты с вызовом ajax Когда я пробую это с почтальоном, я получаю тот же результат. Что я могу делать неправильно?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
276
2

Ответы 2

Вам нужно создать тип формы на стороне сервера, чтобы проверить нового зарегистрированного пользователя, проверьте этот документация. Не забудьте также обновить контроллер.

В вашей ветке вы должны определить

<script> let registerPath = "{{ app.request.getSchemeAndHttpHost() ~ path('register') }}"; </script>

И в вашем js вы можете использовать свой пост ajax следующим образом:

this.form.post(registerPath).then((response) => { console.info(response); });

Надеюсь, это может помочь :)

Спасибо, но это не проблема. Путь правильный.

Jamie 13.02.2019 17:31

Другие вопросы по теме