peace_love
peace_love

Reputation: 6461

How can I make an Ajax request in Symfony 4?

According to this tutorial https://knpuniversity.com/screencast/symfony/javascript#play I am making an ajax request:

myController.php

/**
* @Route("/pages/{slug}/heart", name="article_toggle_heart", methods={"POST"})
*/

public function toggleArticleHeart($slug){
  $id = "5";
  return new JsonResponse(['output'=> $id]);

}

mypage.html.twig

<div class="js-like-article-count">
          result
 </div>
 <a class="js-like-article" href="{{ path('article_toggle_heart', {slug:page.slug}) }}">Click</a>

$(document).ready(function () {

  $( ".js-like-article" ).on( "click", function(e) {

        e.preventDefault();

        var $link = $(e.currentTarget);

        $.ajax({method:POST, url: $link.attr('href')}).done(function(data){
          $('.js-like-article-count').html(data.output);
        });
      });
    });

I expect, that by click on CLICK the text result turns into 5

But nothing is happening. In the console I get the error:

ReferenceError: POST is not defined

Upvotes: 0

Views: 3126

Answers (1)

Jasmin Mistry
Jasmin Mistry

Reputation: 1476

Try

<div class="js-like-article-count">
          result
 </div>
 <a class="js-like-article" href="{{ path('article_toggle_heart', {slug:page.slug}) }}">Click</a>

$(document).ready(function () {

  $( ".js-like-article" ).on( "click", function(e) {

        e.preventDefault();

        var $link = $(e.currentTarget);

        $.ajax({method:"POST", url: $link.attr('href')}).done(function(data){
          $('.js-like-article-count').html(data.output);
        });
      });
    });

Upvotes: 4

Related Questions