4.13 Wenn angemeldet 400 Bad Request nach Routenaufruf
Guten Abend miteinander,
ich verwende die Contao-Version 4.13 und versuche mittels eines sendBeacon die Zeit des Nutzers auf der Webseite festzuhalten. Mit der vorherigen Contao-Version 4.4.x hat das problemlos funktioniert, aber aktuell komme ich leider mit meinem Wissen nicht weiter. Mein Code sieht wie folgt aus:
Controller:
PHP-Code:
namespace App\Controller;
use Contao\Controller;
use Contao\FrontendUser;
use Doctrine\DBAL\Connection;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\AsController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Security;
use Terminal42\ServiceAnnotationBundle\Annotation\ServiceTag;
class TimeController
{
private $connection;
private $security;
public function __construct(Security $security, Connection $connection)
{
$this->security = $security;
$this->connection = $connection;
}
/**
* @Route("/time/", name=TimeController::class, defaults={"_scope": "frontend"})
*/
public function trackAction()
{
// Get current front end user
$user = $this->security->getUser();
var_dump($user);
return new Response("Test");
}
}
JavaScript-Code in Template-Datei:
Code:
<script>
var data = { "foo": "bar" };
var text = JSON.stringify(data);
navigator.sendBeacon('/time/', text);
</script>
services.yaml:
Code:
services:
_defaults:
autowire: true
autoconfigure: true
public: false
App\:
resource: ../src
exclude: ../src/{Entity,Migrations,Model,Resources,Tests,Widget}
App\Controller\:
resource: ../src/Controller
tags: ['controller.service_arguments']
public: true
routes.yaml:
Code:
resource: ../src/Controller
type: annotation
app.controller.time:
path: /time/
defaults:
_controller: 'App\Controller\TimeController::trackAction'
_scope: frontend
_token_check: false
Rufe ich die URL mit dem JavaScript-Code auf, ohne das ich eingeloggt bin, dann bekommt der sendBeacon einen 200er Status und ich bekomme "Test" als Antwort zurück. Wenn ich mich jedoch zuerst als Benutzer im Frontend anmelde und dann die URL aufrufe, bekomme ich ohne Änderung im Code einen 400er Bad Request Status als Antwort. Hat sich da etwas bei der Frontend-Anmeldung in Contao 4.13 geändert, das hier greift?