Как отправить данные формы в выборку, где значения являются строками?
Я пытаюсь PUT
следующие данные: {value: false}
, Я использую isomorphic-fetch и отправляю следующее: JSON.stringify({value: false})
, Проблема в том, что сервер ожидает, что все значения будут строками. Я попытался использовать FormData и отправить его, но сервер почему-то не понимает.
Мне лучше попробовать использовать заменитель в JSON.stringify, который выводит все значения в виде строк? Или есть способ заставить FormData возвращать NVP вместо этого, куда я отправляю это? Просто ищу фрагмент по предпочтительному подходу.
2 ответа
Вы можете просто просмотреть все значения в объекте, который вы собираетесь передать, и вызвать toString() для них перед тем, как приступить к строковому форматированию.
Я решил просто использовать URLSearchParams()
и избегайте обработки пустых значений и массивов при использовании toString.
let qs = new URLSearchParams();
for (let i in data) qs.append(i, data[i]);
const result = qs.toString();
Или объекты wish-js-had-лучше-неизменяемые:
const result = Object.keys(data).reduce((p, c) => {
p.append(c, data[c]);
return p;
}, new URLSearchParams()).toString();