Http.Request缺少什么参数?

时间:2017-10-13 01:25:38

标签: elm

我正在尝试创建一个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

2 个答案:

答案 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