找不到POST /电子邮件的路由

时间:2015-08-13 17:59:15

标签: ajax symfony

控制器:

/**
     * @Route("/email/{name}/{email}/{subject}/{message}", name="email")
     * @Method({"GET", "POST"})
     */
    public function indexAction($name, $email, $subject, $message, Request $request){

        var_dump($name, $email, $subject, $message);
        die;
}

的Ajax:

<script type="text/javascript">
        $(document).ready(function() {
            $('#contact-form').submit(function(event) {
                $.ajax({
                    type:'POST',
                    url:'./email',
                    data:"/"+$('#name').val()+"/"+$('#email').val()+"/"+$('#subject').val()+"/"+$('#message').val(),
                    success:function(response){
                        alert(response)
                    }
                });
                event.preventDefault();
            });
        });
    </script>

我正在尝试向控制器提交ajax请求。不幸的是我得到404,并出现以下错误: 找不到&#34; POST / email&#34; (来自&#34; http://localhost/Portfolio/web/app_dev.php/&#34;)

PS。控制器中的代码用于调试目的

1 个答案:

答案 0 :(得分:0)

路由/email/{name}/{email}/{subject}/{message}表示您需要将请求发送到这样的网址

/email/testName/example@gmail.com/TestSUbject/Testmessage

如果您需要使用/email路线,只需将@Route注释更改为/email

并在控制器中

$request->request->get('email');
//retrieve other fields
...

.. 访问POST请求的值

此外,您还可以使用Symfony Forms来获取它们提供的优势,例如验证,CSRF保护等