2017-06-13 4 views
-1

Ich versuche, eine GET-Anfrage mit Daten an einen Endpunkt in meiner Webanwendung zu machen. Allerdings bekomme ich immer Fehler um GET-Anfragen, die keine Daten haben sollen. Ich erstelle oder aktualisiere keine Ressource, sondern benutze Daten, die auf der Client-Seite eingegeben wurden, um die Anfrage zu bearbeiten. Hier ist meine aktuelle Implementierung - denke ich darüber falsch? Es wirft einen Fehler TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body. Vielleicht macht es Sinn, es eine POST-Anfrage zu machen? Danke :)Eine GET-Anfrage mit Daten (JavaScript) machen?

export const fetchChartData = queryData => { 
    return fetch('api/users', { 
    body: JSON.stringify(queryData) 
    }) 
    .then(res => res.json()); 
}; 
+1

Ihr serverseitiger Code wird die Anfrage bearbeiten. Die get-Anfrage gibt zurück, was durch den Code auf dem Server spezifiziert ist. Wenn Sie beispielsweise alle Arrays zurückgeben möchten, die nicht null sind, wird dieser Code auf der Serverseite geschrieben und dann von der API aufgerufen. Führen Sie einen GET für diese URL mit den korrekten Anmeldeinformationen aus (falls zutreffend), und Sie erhalten alle Arrays zurück, die nicht null sind. –

Antwort

3

Der Fehler ist klar, aber es hängt alles von dem Service ab, den Sie verbrauchen. Erwartet Sie ein GET oder können Sie zum POST wechseln?

Wenn Sie POST ändern können nur die Methode hinzufügen auf Abruf:

export const fetchChartData = queryData => { 
    return fetch('api/users', { 
    method: "POST", 
    body: JSON.stringify(queryData) 
    }) 
    .then(res => res.json()); 
}; 

Wenn Sie nicht POST ändern müssen Sie die Parameter in der URL übergeben.

export const fetchChartData = queryData => { 
    return fetch('api/users?param=value') 
    .then(res => res.json()); 
}; 
Verwandte Themen