Elm “制作”的方法是什么;Http.post";拜访埃尔姆

Elm “制作”的方法是什么;Http.post";拜访埃尔姆,elm,Elm,我在elm中以以下方式使用了http post,但它不起作用,在服务器端,我得到的是空正文。 谁能告诉我这个代码有什么问题吗?这是我的命令模块的代码 module SignupForm.Commands exposing (..) import Http exposing(..) import Json.Decode as Decode exposing (field) import SignupForm.Models exposing (..) import SignupForm.Messa

我在elm中以以下方式使用了http post,但它不起作用,在服务器端,我得到的是空正文。 谁能告诉我这个代码有什么问题吗?这是我的命令模块的代码

module SignupForm.Commands exposing (..)

import Http exposing(..)
import Json.Decode as Decode exposing (field)
import SignupForm.Models exposing (..)
import SignupForm.Messages exposing (..)
import Json.Encode as Encode
import Debug exposing (log)




memberDecoder : Decode.Decoder UserDetails
memberDecoder =
    Decode.map4 UserDetails
        (field "fname" Decode.string)
        (field "lname" Decode.string)
        (field "email" Decode.string)
        (field "password" Decode.string)



saveUrl : String
saveUrl =
   "http://localhost:4000/userSignup"


saveRequest : UserDetails -> Http.Request UserDetails
saveRequest d =
    Http.request


        { body = memberEncoded d |> Http.jsonBody
        , expect = Http.expectJson memberDecoder
        , headers = defaultRequestHeaders
        , method = "POST"
        , timeout = Nothing
        , url = saveUrl
        , withCredentials = False
        }



defaultRequestHeaders : List Header
defaultRequestHeaders =
    [ Http.header "Content-Type"  "application/x-www-form-urlencoded"
    ]

fetchAll : UserDetails -> Cmd Msg
fetchAll data =
    saveRequest data
        |> Http.send OnSignUp


memberEncoded : UserDetails -> Encode.Value
memberEncoded data =
    let
        list =
            [ ( "fname", Encode.string data.fname )
            , ( "lname", Encode.string data.lname )
            , ( "email", Encode.string data.email )
            , ( "password", Encode.string data.password )
            ]
    in
        list
            |> Encode.object

您正在发布json,但声明您正在发送formdata

尝试删除:

defaultRequestHeaders : List Header
defaultRequestHeaders =
    [ Http.header "Content-Type"  "application/x-www-form-urlencoded"
    ]

(请注意,expectJson将自动为您添加
Http.header“Content-Type”“application/json”

您是对的,我尝试过不使用“defaultRequestHeaders”,但它不起作用