FosRestBundle + AngularJS:发布请求为空

时间:2014-09-30 08:18:25

标签: angularjs symfony fosrestbundle

我正在使用FosRestBundle和AngularJS的API进行前端部署。

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 个答案:

答案 0 :(得分: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中接收您的数据。

如果你想像表单数据那样接收它,你必须将它转换为querystring(例如?deal = test& ok = 1),例如,如果你也使用jQuery,你可以像这样转换它

var dataYouWantToSendQueryString = $.param(dataYouWantToSend);

希望它也能帮助你。

P.S。我已经研究过,还没有找到如何将对象转换为角度的查询字符串,所以如果Angular有这样的功能,我很高兴知道它,如果有人知道,请发表评论。