2017-10-20 2 views
-1

Hey j'essaie d'obtenir des données de mon serveur en utilisant POST angulaire je reçois le paramètre que j'envoie et j'obtiens une réponse du serveur. Je ne suis tout simplement pas capable de gérer ma réponse et d'obtenir les paramètres que je veux.comment je gère la réponse POST

si je regarde dans ma console je reçois cette réponse:

data from server Response {_body: " {"data":[{"temperature":"20","dispenses":5,"lates…08:36:15","latest_reset":"2017-10-15 08:42:47"}]}", status: 200, ok: true, statusText: "OK", headers: Headers, …} 

comment pourrais-je aller sur grapping la température? ou devrais-je peut-être changer mon retour JSON? s'il vous plaît me guider dans la bonne direction

mon code angulaire:

getCustomerData() 
    { 
     var headers = new Headers(); 
     headers.append('Content-Type', 'application/x-www-form-urlencoded'); 
     let urlSearchParams = new URLSearchParams(); 
     urlSearchParams.append('customerID', this.customerID); 
     //urlSearchParams.append('password', 'wtf'); 
     let body = urlSearchParams.toString() 

     this.http.post('HIDDEN BUT WORKS',body,{headers: headers}).subscribe(data => { 
     // Read the result field from the JSON response. 
     console.log('data from server', data); 
     let jsonResponse = data.json(); 
     //console.log('nextstep',data.temperature); 
     console.log('hmm',jsonResponse._body.data.temperature); 
     //console.log('size',data.toString); 
    },(error) => { 
     console.log('error', error); 

     }); 
    } 

mon code de réponse:

while ($stmt->fetch()) {   
      $json[] = array(
      'temperature' => $temperature, 
      'dispenses' => $dispenses, 
      'latest_cleaning' => $latest_cleaning,  
      'latest_reset' => $latest_reset  
      );   
     } 


     $finalresult['data'] = $json; 

     //logToFile('data.log',json_encode($finalresult)); 
     echo json_encode($finalresult); 

Répondre

1

en utilisant votre code, vous devriez faire:

this.http.post('HIDDEN BUT WORKS',body,{headers: headers}) 
.map(response => response.json()) 
.subscribe(data => { 
    console.log('temperature', data[0].temperature); 
}) 

vous pouvez également utiliser data[0] pour accéder aux autres propriétés.

+0

après avoir supprimé mon $ finalresult ['data'] = $ json; vos deux réponses fonctionnent! TY –

1

Essayez comme ceci:

this.http.post('HIDDEN BUT WORKS',body,{headers: headers}).map(response => response.json()).subscribe(data => { 
    console.log('data', data); 
}) 
+0

Cela renverra: data {data: Array (1)} Comment accéder au paramètre de température? ect –

+0

console.log ('temerature', data [0] .temperature); – Chandru

+0

après avoir supprimé mon $ finalresult ['data'] = $ json; vos deux réponses fonctionnent! TY –