2014-09-30 29 views
0

我正在使用FosRestBundle和AngularJS作为前端API。FosRestBundle + AngularJS:发布请求为空

GET请求正常工作,但我有POST请求问题。在API控制器请求对象为空..

这里是前部

$http.post(Route.api + '/leads', {lead: "test"}).success(function(data) { 

}); 

这里是FosRestBundle控制器

public function postAction(Request $request) { 
    var_dump($request->request->all()); // empty ? :(
} 

有人已经有同样的问题?

感谢;)

回答

1

是的,我有这样的问题,我已经解决了这个问题,通过Content-Type头Symfony的,这里是我的代码示例

return $http({ 
      method: 'POST', 
      url: Route.api + '/leads', 
      data: dataYouWantToSend, //see the note regarding this parameter 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
     }) 

注: 如果通过data带对象的参数,您将通过JSON的JSON根目录的键接收POST中的数据。

如果你希望得到它像表单数据,你必须把它转换为查询字符串(如?交易=测试& OK = 1),例如,如果你正在使用jQuery也一样,你可以将它转换这样

var dataYouWantToSendQueryString = $.param(dataYouWantToSend);

希望它能帮助你。

P.S.我研究过并没有找到如何将对象转换为查询字符串的角度,所以如果Angular具有这样的功能,我很乐意了解它,如果有人知道,请评论。