Http.Request 缺少什么参数?

What argument is Http.Request missing?

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

我收到以下错误:

Type Http.Request has too few arguments. - Expecting 1, but got 0.

Http.Request 缺少什么参数?

附录:

http://package.elm-lang.org/packages/evancz/elm-http/3.0.1/Http

您的附录 link 是旧版本的 Http 包。新包是 elm-lang/http。 Request 期望的类型参数是在成功响应中使用的类型,在您的情况下看起来应该是 JsonProfile.

evancz/elm-http 包已弃用,您可能实际上正在使用 elm-lang/http,所以您查看的文档有误。

要使用 elm-lang/http 构建 Http.Request,您需要调用 Http.request 函数并将描述请求的记录传递给它。 http://package.elm-lang.org/packages/elm-lang/http/1.0.0/Http#request

此外,您实际上无法为来自浏览器的请求设置 'Origin' header,这意味着您根本不需要设置任何 header并且可以只使用 Http.post 辅助函数 http://package.elm-lang.org/packages/elm-lang/http/1.0.0/Http#post