Контроллер Symfony не может получить данные почтовой формы AngularJS

0

пытаясь отправить запрос $ 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); 
}

Результатом является "значение по умолчанию, если данные не существуют".

  • 0
    Привет, я все еще застрял с этой проблемой. Я перепробовал все возможные способы, которые я нашел в Google, не повезло :( Кроме того, мой запрос в Symfony равен нулю, я имею в виду, $ request-> request-> all () возвращает пустой массив. Любые идеи, пожалуйста?
  • 0
    Сначала проверьте на вкладке сети Google Chrome Devtoolbar, если запрос содержит данные публикации.
Теги:

1 ответ

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

echo $request->request->get('foosdaasd');
}
  • 2
    Пожалуйста, прочитайте это как ответить . Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню