使用Ajax Post将数据发送到Symfony2控制器

If someone plays a YouTube video I want to send this information to a Symfony Controller. But somehow the controller receives nothing.

The Ajax Post

 // Check if video is playing (works)
  var myPlayerState;
  function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        alert('playing');

         $.ajax({
              url: "{{ path('dbe_user_add_experience') }}",
              type: "POST",
              data: { "data" : 'test' },
              success: function(data) { 
                 alert (data);
              },
              error: function(XMLHttpRequest, textStatus, errorThrown)
              {
                alert('Error: ' +  errorThrown);
              }
           });
    }
    myPlayerState = event.data;
  }

The Routing

<route id="dbe_user_add_experience" pattern="/getexperience">
    <default key="_controller">FOSUserBundle:Level:getExperience</default>
</route>

The Controller

  public function getExperienceAction(){
        $request = $this->container->get('request');
        $data = $request->request->get('data');
        var_dump($data);
        die;


        $url = $this->container->get('router')->generate('fos_user_profile_show');
        $response = new RedirectResponse($url);
        return $response;

        //$this->addExperience(5);
  }

Instead of

$data = $request->query->get('data');

Use

$data = $request->get('data');

You are using the wrong property to get POST data.

To get GET data :

$request->query->get('data');

To get POST data :

$request->request->get('data');

From http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/Request.html

I found the error: Ajax was in the noconflict modus. Meaning I had to change $.ajax({ to jQuery.ajax({.