web-dev-qa-db-fra.com

Axios - Comment lire la réponse JSON?

Axios 0.17.1

.then(function (response) {
                console.log(response);
                //console.log(response.status);
                //It is an error -> SyntaxError: Unexpected token u in JSON at position 0 
                console.log(JSON.parse(response.data.error));
                console.log(response.data.error); //undefined.

Le fichier console.log de la réponse est

{data: "{" error ":" Le nom doit être entré avec plusieurs… NULL↵
["isPipe": protected] => ↵ NULL↵} ↵} ↵ ", statut: 203, statusText: " Information non faisant autorité ", en-têtes: {…}, config: {…},…} config: {adaptateur: ƒ, transformRequest: {…}, transformResponse: {…}, délai d'expiration: 0, xsrfCookieName: "XSRF-TOKEN",…} data: "{" erreur ":" Le nom doit être entré avec plus d'un caractère. "} objet (Slim\Http\Response) # 32 (5) {↵ ["status": protected] => ↵ int (200) ↵ ["reasonPhrase": protected] => ↵ chaîne (0) "" ↵ ["protocolVersion": protected] => ↵ chaîne (3) "1.1" ↵ ["headers": protected] => ↵ objet (Slim\Http\Headers) # 33 (1) {↵
["data": protected] => ↵ array (1) {↵ ["content-type"] => ↵
tableau (2) {↵ ["valeur"] => tableau (1) {↵ [0] => ↵
string (24) "text/html; charset = UTF-8" ↵} ↵
["originalKey"] => chaîne (12) "Content-Type" ↵} ↵} ↵} ↵ ["body": protected] => ↵ objet (Slim\Http\Body) # 31 (7) {↵
["stream": protected] => ressource (59) de type (stream)
["meta": protected] => NULL↵ ["lisible": protected] => NULL↵
["writeable": protected] => NULL↵ ["seekable": protected] => ↵
NULL↵ ["size": protected] => NULL↵ ["isPipe": protected] =>
NULL↵} ↵} ↵ "en-têtes: {content-type: " Application/json; charset = utf-8 "} requête: XMLHttpRequest {. Onreadystatechange: ƒ, readyState: 4, délai d'expiration: 0, avec les autorisations: false, upload: XMLHttpRequestUpload,…} status: 203 statusText: "Informations ne faisant pas autorité" proto : Object

JSON.parse (response.data) ainsi que response.data.error -> Les deux donnent une erreur. Comment puis-je lire les données?

Slimframework 3. 

$data = array('error' => 'Name must be entered with more than one character.');
        $newResponse = $response->withJson($data, 203);
        return $newResponse;
6
Mahesh

Dans Axios, les réponses sont déjà servies en tant qu'objet javascript. Inutile d'analyser, il suffit d'obtenir les données de réponse et d'accès.

8
Mosè Raguzzini

J'ai eu une réponse de format similaire à celle du journal de la console et mon problème était que mon fichier .json n'était pas au format de propriété. Il me manquait une virgule. Postez votre fichier json pour avoir un coup d'oeil.

1
Kleo