2016-07-19 5 views
0

пытается отправить запрос $ http.post из формы AngularJS в контроллер Symfony, чтобы добавить содержимое формы в базу данных. Я могу получить успешный ответ со статусом: 200 на стороне AngularJS.Контроллер Symfony не может получить данные сообщения формы AngularJS

Однако на контроллере Symfony $ request-> getContent() пуст, ничего не возвращает; $ request-> getMethod() возвращает 'GET', что для меня не делает. Как я могу получить данные в Symfony?

P.S. Установлен FOSRestBundle и активирован прослушиватель тела, прослушиватель param fetcher.

Я знаю, что мой вопрос дублируется POST Ajax request by AngularJS to Symfony controller, но 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); 
} 

В результате «значение по умолчанию, если данные не существует ».

+0

Привет, я все еще придерживаюсь этой проблемы. Я пробовал все возможные способы, которые я нашел в google, не повезло :(Кроме того, мой запрос в symfony равен null, я имею в виду, что запрос $ request-> request-> all() возвращает пустой массив. Любые идеи, пожалуйста? – Hippo

ответ

0
public function replyAction(Request $request) { 
$data = json_decode($request->getContent(), true); 
$request->request->replace($data); 

echo $request->request->get('foosdaasd'); 
} 
+2

Пожалуйста, прочтите это [как-ответ] (http://stackoverflow.com/help/how-to-answer). Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и почему оно решает проблему, улучшить долгосрочную ценность ответа. – thewaywewere

Смежные вопросы