NotFoundHttpException:找不到"POST / in SYmfony2"的路由



我有一个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");
});

任何帮助都将不胜感激。

您不需要通过路由中的参数{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. 如何实现简单的注册表
  2. FOSJsRoutingBundle文档

最新更新