Данные запроса Symfony4 пустые при вызове ajax - PullRequest
0 голосов
/ 13 февраля 2019

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

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

this.form.post('/register').then((response) => {
    console.log(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']);
}

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

enter image description here

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

enter image description here

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

enter image description here Когда я пытаюсь сделать это с почтальоном, я получаю тот же результат.Что я могу делать не так?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

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

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

И в вашем js вы можете использовать свой пост ajax так:

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

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

0 голосов
/ 13 февраля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...