1

를 동형 페치 : 나는 isomorphic-fetch를 사용하여이 요청을 재현하기 위해 노력하고있어사용하여 응용 프로그램/x-www-form-urlencoded를 헤더와 URLSearchParams로 POST하는 방법이 잘 작동 CURL 예입니다

curl --request POST \ 
    --url <url> \ 
    --header 'authorization: Bearer <authorization token>' \ 
    --header 'content-type: application/x-www-form-urlencoded' \ 
    --data 'category=1&userId=<uuid>' 

.

나는이 시도했다 :

const searchParams = new URLSearchParams(); 
searchParams.set('category', category); 
searchParams.set('userId', userId); 

return fetch(`<url>`, {  
    method: 'POST', 
    headers: { 
    'Authorization: Bearer <authorization token>', 
    'Accept': 'application/json', 
    'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' 
    }, 
    body: searchParams 
})` 

을하지만 나는 411 상태 코드 오류 응답을 (length required)

에 대한 URLSearchParamsFetch 여기

더 많은 정보 :

fetch documentation

fetch spec

제안 사항이 있으십니까?

+1

내가 isomorphic- 모르는 가져 오기 (fetch)하지만 표준 가져 오기 (Fetch Standard)에 대해 알고 있으며 사용자 에이전트가 이러한 종류의 요청에 대해 Content-Length 헤더를 설정해야합니다. (당신도 Content-Type을 직접 설정할 필요는 없으며, 사용자 에이전트도 역시 처리해야한다.) – Anne

+0

CURL 요청에서 'Content-Type'을 지정할 필요가 없기 때문에 혼동 스러웠다. 길이 헤더. 답변으로 댓글을 쓸 수 있습니까? – rfc1484

답변

2

서버 구현이 올바르다 고 가정하면이 문제는 isomorphic-fetch (또는 훨씬 더 가능성이 높은 GitHub의 WHATWG Fetch polyfill)에서 Content-Length 헤더를 고정 된 크기의 헤더에 추가 할 필요가 없으므로 문제가됩니다. Fetch Standard에 의해

(즉,이 또한 URLSearchParams 개체에서 유추와 API의 구현에 의해 추가 될 예정대로 또한 Content-Type 헤더를 생략 할 수 있어야합니다.)