Je ne parviens pas à effectuer une opération Post à l'aide de l'infrastructure Giraffe sur le serveur lorsqu'un client Elm envoie la demande.Comment activer CORS dans Giraffe?
Je reçois le message suivant lors d'une tentative de tester une requête http:
info: Microsoft.AspNetCore.Hosting.Internal.WebHost 1
Request starting HTTP/1.1 OPTIONS http://localhost:5000/register 0
Microsoft.AspNetCore.Hosting.Internal. WebHost: Informations: Demande
à partir de HTTP/1.1 OPTIONS http://localhost:5000/register 0 dbug: Microsoft.AspNetCore.StaticFiles.StaticFileM iddleware 1
OPTIONS requests are not supported
La mise en œuvre de services est la suivante:
let private registrationHandler =
fun(context: HttpContext) ->
async {
let! data = context.BindJson<RegistrationRequest>()
match register data with
| Success profile -> return! json profile context
| Failure -> return! (setStatusCode 400 >=> json "registration failed") context
}
Je puis essayé ce qui suit et observé le même résultat:
let private registrationHandler =
fun(context: HttpContext) ->
async {
return! text "hello world" context
}
Annexe:
POST >=>
choose [
route "/register" >=> registrationHandler
]
Le fichier source peut être trouvé here.
Voici un Giraffe sample qui montre le code pour soutenir Cors.
Vous effectuez la demande d'un autre domaine à localhost: 5000 (par exemple en utilisant la commande servent angulaire)? Il semble que vous ayez affaire à une [demande de contrôle en amont de CORS] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS). –
Mon client est également un hôte local mais avec un numéro de port différent. Ne devrais-je pas être en mesure de tester une application Web et un service de traitement distinct sur ma machine locale? –