пытаясь отправить запрос $ http.post из формы AngularJS в контроллер Symfony, чтобы добавить содержимое формы в базу данных. Я могу получить успешный ответ со статусом: 200 на стороне AngularJS.
Однако на контроллере Symfony $request-> getContent() пуст, ничего не возвращает; $request-> getMethod() возвращает 'GET', что не делает мне смысла. Как я могу получить данные в Symfony?
PS Установлен FOSRestBundle и включен прослушиватель тела, прослушиватель param fetcher.
Я знаю, что мой вопрос дублируется запросом POST Ajax от AngularJS к контроллеру Symfony, но 2 ответа этого сообщения не работают для меня.
Мой blog.html.twig,
<form name="replyForm" ng-submit="sendReply(blog.id)">
Preview: {{'{{reply.content}}'}} <br><br>
My Reply: <input type="text" name="content" ng-model="reply.content" />
<input type="submit" value="Reply" />
</form>
blog.js,
$scope.reply = {};
$scope.sendReply = function(blogId){
$scope.reply.blog = blogId;
$http.post('http://localhost/app_dev.php/blogReply', $scope.reply, {'Content-Type': 'application/x-www-form-urlencoded'})
.then(function(data){
$scope.message = angular.fromJson(data);
}, function(data){
$scope.message = angular.fromJson(data) || "Request failed";
});
$scope.reply = {};
}
Symfony blogController,
/**
* @Route("/blogReply", name="blogReply")
*/
public function replyAction(Request $request){
$data = $request->request->get('data', 'default value if data does not exist');
return new Response ($data);
}
Результатом является "значение по умолчанию, если данные не существуют".
public function replyAction(Request $request) {
$data = json_decode($request->getContent(), true);
$request->request->replace($data);
echo $request->request->get('foosdaasd');
}