My problem:
I post by ajax at my controller the form.
$.ajax({
url: "test.php",
type: "post",
data: new FormData(document.querySelector("form")) ,
success: function (response) {
// You will get response from your PHP page (what you echo or print)
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
and my controller
<?php
namespace App\Controller;
/*¤controller_namespace¤*/
use ...
/**
* @Route("admin/article")
*/ class ArticleController extends AbstractController
{
/**
* @Route("/upload", name="upload", methods={"GET","POST"})
*/
public function upload(Request $request, FileUploader $fileUploader): Response
{
/*¤new_begin¤*/
$article = new Article();
$form = $this->createForm(ArticleType::class, $article);
$form->handleRequest($request);
/*¤new_form¤*/
//return error for ajax only
if ($request->isXmlHttpRequest() && !$form->isValid()) {
return new jsonResponse(getErrorMessages($form), 415);
}
}}
Symfony don't detect the ajax call in the controller. I send a form invalid but the function isXmlHttpRequest don't detect the ajax call.