I'm having trouble calling Http.send on an API that requires basic
authentication.  I collapsed the key part down into a single function:

httpGet : JsonDecode.Decoder value -> String -> String -> Task.Task
Http.Error value
httpGet decoder authorization url =
  let request =
    { verb = "GET"
    , headers =
      [ ("Access-Control-Request-Method", "GET")
      , ("Authorization", "Basic " ++ authorization)
      , ("Origin", "http://127.0.0.1:8080";)
      ]
    , url = url
    , body = Http.empty }
  in
    Http.fromJson decoder (Http.send Http.defaultSettings request)


I believe the API endpoint has CORS configured properly:

< HTTP/1.1 200 OK
< Server: nginx/1.10.1
< Date: Thu, 25 Aug 2016 02:38:57 GMT
< Content-Type: application/json
< Content-Length: 165
< Connection: keep-alive
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, POST, OPTIONS
< Access-Control-Allow-Headers:
DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type


The problem I'm seeing is that when I trigger the Http.send in Chrome and
Firefox, I only ever see an OPTIONS request returning 204 in the network
tab.  I never see the corresponding GET request and the Http.send function
returns a very unhelpful NetworkError.

Can anybody point out what I am doing wrong?

Thanks,
Bryan

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to