2016-11-20 6 views
0

私はPUT次のデータを試みています:{value: false}。私は同形フェッチを使用しており、次を送信しています:JSON.stringify({value: false})。問題は、サーバーがすべての値が文字列であることを期待していることです。私はFormDataを使用してそれを送信しようとしましたが、サーバーは何らかの理由でそれを理解しません。値が文字列であるfetchでフォームデータを送信するにはどうすればよいですか?

JSON.stringifyの置換えを使用してすべての値を文字列として出力するほうがよいですか?それともFormDataに代わりにNVPを返す方法がありますか?好ましいアプローチでスニペットを探しているだけです。

答えて

1

渡すオブジェクトのすべての値を調べ、文字列化する前にtoString()を呼び出すことができます。

0

私はURLSearchParams()を使用し、toStringを使用するときはnullと配列を処理しないことにしました。

let qs = new URLSearchParams(); 

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

const result = qs.toString(); 

それとも願い-JS-持っていた - より良い-不変 - オブジェクト:

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

    return p; 
}, new URLSearchParams()).toString(); 
関連する問題