Neuer Browser Tab mit eigenem Inhalt über Javascript

Hallo zusammen,

ich habe zu den Produkten einen neuen Tab erstellt, der zu den Artikeln Dokumente auflistet, die per Link aufgerufen werden sollen.
Wenn ich den Link allerdings ausführe, lande ich immer auf der Startseite. In der Log-Datei gibt es keine Fehlermeldungen.

Die Prozedur für das Dokument sieht so aus:

/**
     * @Route("/getitemfile", name="getitemfile", methods={"GET"})
     * @RouteScope(scopes={"storefront"})
     */
    public function getitemfile(Request $request): JsonResponse
    {
// $file ist ein PDF, das auch geladen wird, den Code habe ich hier ausgeblendet           
        $info = pathinfo($file);
        $filename = urlencode($info['basename']);
//        dump(substr(file_get_contents($file),0,99));
//        die($filename);
        $response = new Response(file_get_contents($file));
        $response->headers->set('Content-Type', 'application/pdf');
        $response->headers->set('Content-Disposition', $response->headers->makeDisposition(
            ResponseHeaderBag::DISPOSITION_INLINE,
            $filename
        ));
        return $response;
    }

In der routes.xml ist eingetragen:

<route id="getitemfile" path="/getitemfile" methods="GET">
        <default key="_controller">MyExtension\Storefront\Controller\MyController::getitemfile</default>
    </route>

Grundsätzlich funktioniert alles, bis auf die Tatsache, dass das PDF nicht angezeigt wird und stattdessen auf die Startseite geleitet wird.
Kann es sein dass die Seite trotzdem gerendert wird und wenn ja, wie verhindere ich das?

Mittlerweile habe ich die Ursache gefunden:
Die Umleitung auf die Startseite wurde durch den Wartungsmode verursacht. Nachdem ich diesen ausgeschaltet habe, wurde auch eine Fehlermeldung angezeigt.
Der Fehler war in der Rückgabe, die ich als JsonResponse angegeben hatte, aber Response sein musste.