2016-11-20 6 views
0

PUT 다음 데이터를 찾으려고합니다 : {value: false}. 동형 프리 패치를 사용 중이며 다음을 보내고 있습니다 : JSON.stringify({value: false}). 문제는 서버가 모든 값을 문자열로 기대한다는 것입니다. FormData를 사용하여 보내려고했지만 서버가 그 이유를 이해하지 못합니다.값이 문자열 인 가져 오기에서 양식 데이터를 보내는 방법은 무엇입니까?

JSON.stringify의 replacer를 사용하여 모든 값을 문자열로 출력하는 것이 더 좋습니다. 아니면 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();