J'ai eu du mal à activer les requêtes inter-domaines entre mon client Elm et un serveur Giraffe.Problèmes avec Http Post malgré l'activation de CORS dans Elm et Giraffe
Elm (Client):
tryPostRegistration : String -> Http.Body -> Decoder JsonProfile -> Http.Request JsonProfile
tryPostRegistration url body decoder =
Http.request
{ method = "POST"
, headers =
[ header "Origin" "http://elm-lang.org"
, header "Access-Control-Request-Method" "POST"
, header "Access-Control-Request-Headers" "X-Custom-Header"
]
, url = url
, body = body
, expect = Http.expectJson decoder
, timeout = Nothing
, withCredentials = False
}
tryRegister : Form -> (Result Http.Error JsonProfile -> msg) -> Cmd msg
tryRegister form msg =
let
url =
baseUrl ++ "register"
body =
encodeRegistration form |> Http.jsonBody
request =
tryPostRegistration url body profileDecoder
in
Http.send msg request
erreur (client Elm):
Http404: INTROUVABLE - Le serveur n'a rien trouvé correspondant à l'URI demandé (Uniform Identificateur de ressource). (XHR) OPTIONS - http://localhost:5000/register
Giraffe (serveur):
let configureCors (builder : CorsPolicyBuilder) =
builder.WithOrigins("http://localhost:5000").AllowAnyMethod().AllowAnyHeader() |> ignore
let configureApp (app : IApplicationBuilder) =
app.UseCors configureCors |> ignore
app.UseGiraffe webApp
let configureServices (services : IServiceCollection) =
...
services.AddCors |> ignore // Enables CORS
Erreur (serveur girafe):
DBUG: demandes Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware 1 OPTIONS ne sont pas pris en charge
dbug: Giraffe.Middleware.GiraffeMiddleware [0] La girafe revient Certains ned pour HTTP/1.1 OPTIONS/S'enregistrer
Annexe:
Elm Gateway (with CORS support)
Giraffe server (with CORS support)
Giraffe CORS sample project reference
Je t'aime mec ... –