2 pièce(s) jointe(s)
Récupérer les données au format JSON
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:
var jsonData = $.parseJSON(data);
j'ai le message :
Citation:
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 :
Pièce jointe 532652
et dans la réponse :
Pièce jointe 532649
Je comprends pas ce qui gène.
Ma requête Ajax:
Code:
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:
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); |