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

Tags

TYPO3

Hat Dir der Artikel gefallen?