Backend Routes - Ajax - TYPO3 7.6


TYPO3 bindet für Ajax Request nun automatisch die Datei <extension>/Configuration/Backend/AjaxRoutes.php ein.

Eine Konfiguration ist dann wie folgt möglich:

Im Javascript Backend lässt sich die neue Route über den festgelegten Key auslesen.

Zum Beispiel so:

Die Funktion im Controller erhält einen Response und einen Request Parameter.

<?php
return [
  'add_something' => [
      'path' => '/<extensionname>/add', // der Pfad ist hier nicht an die extension gebunden ... erscheint mir hier aber sinnvoll
      'target' => VENDOR\<extensionname>\Controller\ExampleController::class . '::addFunction',
  ]
];
$.ajax({
    url: TYPO3.settings.ajaxUrls['add_something'],
    method: 'post',
    data: {"data": data},
    dataType: 'json',
    success: function(response) {
        console.log(response);
    }
});
/**
 * @param \Psr\Http\Message\ServerRequestInterface $request
 * @param \Psr\Http\Message\ResponseInterface $response
 *
 * @return \Psr\Http\Message\ResponseInterface
 */
public function handleSortingAjax(
    \Psr\Http\Message\ServerRequestInterface $request,
    \Psr\Http\Message\ResponseInterface $response
) {

  $data = $request->getParsedBody();
  // ... do something with the data ...
  $response->getBody()->write('Hello World!');
  return $response;
}

Kategorien

  Devblog

Hat dir der Artikel gefallen?

Werkraum News: