Detect AJAX requests with isAJAX() and return JSON or redirect based on request type.
AJAX Requests
if ($this->request->isAJAX()) {
return $this->response->setJSON($data);
}
// Read JSON body
$json = $this->request->getJSON(true);
// Handle both AJAX and regular requests
public function store() {
$isAjax = $this->request->isAJAX();
if (!$this->validate($rules)) {
if ($isAjax) {
return $this->response->setStatusCode(422)
->setJSON(["errors"=>$this->validator->getErrors()]);
}
return redirect()->back()->withInput();
}
}