2016-11-20 3 views
0

Ich versuche PUT die folgenden Daten: {value: false}. Ich benutze isomorphic-fetch und sende folgendes: JSON.stringify({value: false}). Das Problem ist, dass der Server alle Werte als Zeichenfolgen erwartet. Ich habe versucht, FormData zu verwenden und das zu senden, aber der Server versteht das aus irgendeinem Grund nicht.Wie senden Sie Formulardaten im Abruf, wobei Werte Zeichenfolgen sind?

Soll ich besser einen Ersatz für JSON.stringify verwenden, der alle Werte als Zeichenfolgen ausgibt? Oder gibt es eine Möglichkeit, dass FormData stattdessen NVPs zurückgibt, wo ich das sende? Ich suche nur nach einem Ausschnitt für den bevorzugten Ansatz.

Antwort

1

Sie könnten einfach alle Werte in dem Objekt, das Sie übergeben werden, durchgehen und toString() auf ihnen aufrufen, bevor Sie stringify.

0

Ich entschied mich, einfach URLSearchParams() zu verwenden und vermeiden, Null und Arrays bei der Verwendung von toString zu behandeln.

let qs = new URLSearchParams(); 

for (let i in data) qs.append(i, data[i]); 

const result = qs.toString(); 

oder um den Wunsch-js-had-besser-unveränderlich-Objekte:

const result = Object.keys(data).reduce((p, c) => { 
    p.append(c, data[c]); 

    return p; 
}, new URLSearchParams()).toString(); 
Verwandte Themen