2016-09-03 4 views
1

필자는 Elixir 1.3.2 및 Phoenix 1.2.1을 처음 사용하고 있으며 this 튜토리얼을 따른 후 phoenix에 사용자 객체 (지도)를 게시하려고합니다. 저는 우편 배달부와 올바른 URL 인 http://localhost:4000/api/users을 사용하고 있습니다. 처음에는 json 객체가있는 원시 몸을 시도했지만 누락 된 키 예외가 있습니다. 예상되는 키 "user"가 params에 있어야합니다. 예상 키를 보내거나 scrub_params/2 호출을 사용하십시오.JSON을 사용하여 Phoenix에지도를 게시 하시겠습니까?

"사용자"및 값 : "{이메일 :"[email protected] ", 암호 :"s3cr3t "}"키를 사용하여 우편 발송자의 formdata 옵션. 이로 인해 엘 립실 API에서 다음과 같은 오류 응답이 나옵니다. 기대되는 매개 변수가지도가 되려면 : "{email: \"[email protected]\", password: \"s3cr3t\"}"

누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까? JSON을지도에 직렬화/일치 시키려면 어떻게해야할까요?

답변

0

서버에 보낼 필요가있는 JSON은 최상위 레벨의 사용자 키가 얼마나

{ 
    "user": { 
    "email": "[email protected]", 
    ... 
    } 
} 

주처럼 보일 필요가있다. 그게 당신의 오류가 의미하는 것입니다

expected key "user" to be present in params

+0

당신이 제안하는 형식이 작동하지 않습니다. 오류가 발생합니다 : 예상되는 키 "user"가 params에 있어야합니다. 예상 키를 보내거나 scrub_params/2 전화를 사용하십시오. 사용자 : { "email": "[email protected]" , "password": "secret"} 그러나 다음과 같이 나타납니다. 예상되는 params가 map이 될 수 있습니다 :' "{\"email \ ": \"[email protected]l.com \ ", \"password \ ": "secret \"} "" – programmingheadaches

+0

dev 모드에서 요청할 때마다 Phoenix는 매개 변수를 알려줍니다. 예를 들어, 내 서비스에 로그인했을 때 콘솔에 '% { "_ csrf_token"= ""... ","_utf8 "=>"✓ ","session "=> % {" email "=>"[email protected] ","password "=>"[FILTERED] "}}}'. 이 경우 세션을 처리 할 때 "세션"키가 최상위에 있습니다. 매개 변수 목록의 최상위 레벨에 "사용자"키가 있습니까? –

+0

콘솔은 http 콘솔의 피닉스 콘솔이며 json 본체가 아닙니다. 내 요청 본문의 루트에 사용자 키가 있습니다. – programmingheadaches

관련 문제