Bonjour,

bon apparemment d'après mes recherches ... Ma requête AJAX,, récupère bien le json, mais n'arrive pas à le transformer. Le problème vient bien de la ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
var jsonData = $.parseJSON(data);
j'ai le message :
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Pourtant ma réponse me renvoie bien un objet json

j'ai bien dans ma console :
Nom : Ecran.png
Affichages : 2205
Taille : 63,9 Ko


et dans la réponse :
Nom : Ecran.png
Affichages : 1904
Taille : 81,0 Ko


Je comprends pas ce qui gène.
Ma requête Ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
 * Requête Ajax : Permettant le controle du nom de l'automate dans l'input
 * de façon interactive
 */
function checkNameAuto() {
 
    // Recupération de l'input id=nom
    var inputName = document.getElementById('nom');
 
    // On attend que l'input perde le focus
    inputName.onblur = function (e) {
 
        //on récupère la valeur de l'input
        var name = inputName.value;
        //console.log(name);
 
 
        //$('#message-text').html("");
        //on effectue la requête ajax
        $.ajax({
            type: "GET",
            url: "/administration/table/automates/form/checkName",
            data: {
                nom: name
            },
            datatype: "json",
            success: function (data) {
 
                messageDisplay(data);
            },
            error: function (data) {
 
                messageDisplay(data);
            }
        })
 
 
        function messageDisplay(data) {
            console.log(data);
            var jsonData = $.parseJSON(data);
            //console.log(jsonData);
 
            if(jsonData.etat == 'ok') {
                $('#messages-card').removeClass("red").addClass("green");
            }
            else {
                $('#messages-card').removeClass("green").addClass("red");
            }
 
            $('#message').html(jsonData);
        }
 
    }
}
La partie de mon controller qui monte la réponse en JSON :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
        //si l'automate existe déjà
        if ($double !== false) {
            //afficher message d'erreur
            $message = array();
            $message["etat"] = "ko";
            $message["retour"] = "Vous ne pouvez pas utiliser ce nom - Nom déjà utilisé ";
            $this->logger->error($message["retour"]);
 
 
            $resultat = json_encode($message);
            //var_dump($message);
 
            $statusCode = 409;
            $response->getBody()->write($resultat);
 
            return $response
                ->withHeader("Content-Type", "application/json")
                ->withStatus($statusCode);
        }
 
        //afficher message d'erreur
        $message = array();
        $message["etat"] = "ok";
        $message["retour"] = "Vous pouvez utiliser ce nom - Nom non utilisé ";
        $this->logger->error($message["retour"]);
 
 
        $resultat = json_encode($message);
 
 
        $statusCode= 200;
        $response->getBody()->write($resultat);
 
        return $response
            ->withHeader("Content-Type", "application/json")
            ->withStatus($statusCode);