我正在尝试创建一个Http.Request值:
request : Http.Request
request =
{ verb = "POST"
, headers =
[ ( "Origin", "http://elm-lang.org" )
, ( "Access-Control-Request-Method", "POST" )
, ( "Access-Control-Request-Headers", "X-Custom-Header" )
]
, url = url
, body = body
}
代码嵌入在下面的函数中:
tryRegister : Form -> (Result Http.Error JsonProfile -> msg) -> Cmd msg
tryRegister form msg =
let
url =
baseUrl ++ "register"
body =
encodeRegistration form |> Http.jsonBody
request : Http.Request
request =
{ verb = "POST"
, headers =
[ ( "Origin", "http://elm-lang.org" )
, ( "Access-Control-Request-Method", "POST" )
, ( "Access-Control-Request-Headers", "X-Custom-Header" )
]
, url = url
, body = body
}
in
Http.send msg request
我收到以下错误:
类型Http.Request参数太少。 - 期待1,但得到0。
Http.Request缺少什么参数?
附录
http://package.elm-lang.org/packages/evancz/elm-http/3.0.1/Http
答案 0 :(得分:3)
您的附录链接是旧版本的Http包。新包是elm-lang/http。 Request期望的类型参数是成功响应中使用的类型,在您的情况下看起来应该是JsonProfile
。
答案 1 :(得分:2)
不推荐使用evancz / elm-http软件包,您可能实际上正在使用elm-lang / http,因此您需要查看错误的文档。
要使用elm-lang / http构造{{1}},您需要调用Http.request函数并向其传递描述请求的记录。 uglify-es npm link
此外,您无法实际设置“原点”。这意味着您根本不需要设置任何标头,只需使用{{1}}辅助函数http://package.elm-lang.org/packages/elm-lang/http/1.0.0/Http#request