Symfony + VueJs + Axios = Нет параметров отправки формы - PullRequest
0 голосов
/ 03 февраля 2019

Я использую Symfony 4, VueJs 2 и Axios для отправки моей формы с помощью Ajax.Форма отправляется без явных проблем, но кажется, что входные данные моей формы не отправляются вместе с ней.

Любопытство: я сделал это, но с jQuery Ajax и работает очень хорошо.

Я уже пробовал это решение на 2017 год, но у меня не работает: POST-запросы с аксиосами, не отправляющими параметры

index.html

<form id="form" @submit.prevent="sendForm">
    <input type="text" v-model="name">
    <input type="submit" value="Send">
</form>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    let form = new Vue({
        el: "#form",
        data: {
            name: ""
        },
        methods: {
            sendForm: function () {
                axios
                    .get("/send", this.data)
                    .then(response => console.log(response.data))
            }
        }
    });
</script>

homeController.php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HomeController extends AbstractController {
    /**
     * @Route("/", name="home")
     */
    public function index() {
        return $this->render('home/index.html.twig');
    }

    /**
     * @Route("/send", name="send")
     */
    public function sendForm(Request $request) {
        $name = $request->query->get("name");
        return new Response($name);
    }
}

1 Ответ

0 голосов
/ 19 мая 2019

в Symfony попробуйте: $request->getContent().

Например:

// ...
class HomeController extends AbstractController {
    //...
    /**
     * @Route("/send", name="send")
     */
    public function sendForm(Request $request) {
        // Decode data with json_decode()
        $data = json_decode($request->getContent(), true);
        $name = $data['name'];

        return $this->json($name);
    }
    //...
}

Наслаждайтесь!

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