2014-09-30 48 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具有這樣的功能,我很樂意瞭解它,如果有人知道,請評論。