NotFoundHttpException:找不到“POST /在SYmfony2中的路径”

时间:2014-02-17 03:51:27

标签: ajax symfony

我有一张ajax张贴表格让我想要根据几乎相似的问题尝试各种答案,但这里无济于事。

我的routing.yml文件中有以下路由

_save_profile:
pattern:    /register/save-profile/{data}
defaults: {_controller: MYBundle:Registration:saveProfile}
requirements:
    _method:  GET|POST
options:
    expose: true   

并使用以下代码发布表单

var postData = $('#form').serializeArray();
$.ajax(
      {
     url: Routing.generate('_save_profile',{
         type: "POST",
         data : postData,
         }).done(function()
         {
            alert("Saved");
         });

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您不需要在路线中通过参数{data}发送表单数据。如果你想用ajax发送表单,那么你需要。

更改路线:

_save_profile:
    pattern:    /register/save-profile/
    defaults: {_controller: MYBundle:Registration:saveProfile}  

更改js:

var postData = $('#form').serializeArray();

    $.ajax({
      url: Routing.generate('_save_profile'),
      type: "POST",
      data: postData,
      dataType: "json",
      success:
              function(result) {

                    console.log(result);

              },
      error:
              function() {
               alert('Error')
              }
    });

注意:我没有使用FOSJsRoutingBundle捆绑来进行js路由。我总是在数据属性中的模板上渲染路径。例如。

<强> HTML

 <form type="POST" id="form" data-url="path('_save_profile')">

<强> JS

var url = $('#form').data('url');

<强>参考

  1. How to implement a simple Registration Form
  2. FOSJsRoutingBundle documentation