控制器PATH进入jquery AJAX请求

时间:2014-08-16 13:55:48

标签: jquery ajax symfony

在我看来,我在表单上有一个表单和一个AJAX事件:

        var data = {
            msg1: $("#msg1").val(),
            msg2: $("#msg1").val(),
            msg3: $("#msg1").val(),
        };

        $.ajax ({
            type: "POST",
            url: "{{ path('new_chat_msg') }}",
            data: data,
            complete: function (xhr, result) {
                console.log("ok");
            }
        });

我想给我的控制器打电话,他的名字是new_chat_msg

/**
 * Commande controller.
 *
 * @Route("/commande")
 */
class CommandeController extends Controller
{

    /**
     * Flush new chat message.
     *
     * @Route("/", name="new_chat_msg", options={"expose"=true})
     */
    public function ajaxAction(Request $request)
    {
        $text = $request->request->get('data');

        return new Response('Hello world!');
    }

}

如您所见,我使用注释进行路由。 new.html.twig是表单所在的视图。

但是当我提交表格时,它没有输入方法......

所以我不知道如何调用控制器并将JSON数据传递给他......

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

  1. 我认为你应该阅读documentation page
  2. 500 Internal Server Error通常说你的代码中有错误的代码,所以我可以说你必须为你添加动作后缀addMsgChat动作(比如addMsgChatACtion)
  3. 您的代码中的另一个错误是,控制器操作必须返回Response对象,因此您需要在操作中至少返回return new Response()才能看到它是否有效
  4. p.s:我建议使用FOSJsRoutingBundle包来调用JS文件中的路由。