2017-09-08 1 views
0

Ich mache eine App mit React Native und ich habe Probleme mit einem Serverproblem. Ich habe einige HTTP-Anforderungen ohne Körper und es ist alles arbeiten, aber jetzt versuche ich, einen Beitrag zu machen und es funktioniert wie ein Zauber in Postman (Anfrage runner-Tool), aber nicht, wenn es in dem Code ist:POST Körper nicht gesendet/empfangen

enter image description here

Also in meinem PHP ich Rückkehr POST-Daten, die ich in dem Körper gesendet, und es ist, hier zu arbeiten, aber es ist die Rückkehr null und meine SQL ausgeführt wird, nicht in meinem Code:

save() 
{ 
    this.updateDatabase(this.state.data).then((response) => { 
     console.warn("id: " + response.id + " status: " + response.status); 
    }); 
} 

async updateDatabase(newData) 
{ 
    const response = await fetch('http://XXX.XXX.XXX:8888/updateApplication.php', { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json' 
     }, 
     mode: 'no-cors', 
     body: JSON.stringify({ 
      data: newData, 
     }) 
    }); 
    const json = await response.json(); 
    return json; 
} 

und hier ist meine PHP:

$json = $_POST['data']; 
    $data = json_decode($json)->{'data'}; 

    $appRequest = "UPDATE app_forms SET status = '".$data->{'status'}."'WHERE id = '".$data->{'id'}."'"; 

    $appResults = $connection->query($appRequest); 

    $response = array ('id'=>$data->{'id'},'status'=>$data->{'status'}); 
    echo json_encode($response); 

Ich verstehe nicht, warum es nicht in meinem Code arbeiten ... Vielen Dank im Voraus für Ihre Hilfe

+0

können Sie 'var_dump ($ json)', und versuchen, was durch Anfrage um zu sehen erhielt –

+0

Ich habe den gleichen Fehler wie die Antwort von @tre unten, und wenn ich den Inhaltstyp ersetze, ist es immer noch null – Koko

+0

Welchen "Content-Type" möchten Sie verwenden? 'multipart/form-data' oder' application/json'? – shaochuancs

Antwort

0

Ich glaube, du falsche Format in Körper haben. Try this:

var data = new FormData(); 

data.append("json", JSON.stringify({data: newData }); 

Dann Anfrage aktualisiert:

mode: 'no-cors', 
body: data 
+0

Danke für Ihre Antwort, ich bekomme einen "multipart! = Application/json" -Fehler und ich habe versucht, Inhaltstyp durch "multipart/form-data" zu ersetzen, wie ich im Internet sah, aber es ist immer noch null – Koko

+0

Oh. Entschuldigung, ich habe nicht aufgepasst. Ich denke, Antwort ist hier: https://stackoverflow.com/a/18867369/4957195 Daten von Post JSON erhalten. Postman sendet Formulardaten, aber Ihr Abruf-Skript sendet rohe JSON – tre

+0

Ich kann nicht etwas angezeigt werden, wenn die 'php: // Eingabe' ... Es ist nur leer – Koko