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;
}