on develop help sign in
add xmlHttpRequestGetStatus and xmlHttpRequestGetStatusText
commit003bf933b74e4e84c83ae7b979d3c0df405a6af5 authorAli Abrar <aliabrar@gmail.com> dateSun 19 Apr 2015, 11:41 (11 years ago) parentbbcd950
2 files changed+28−5
src-ghc/Reflex/Dom/Xhr/Foreign.hs+20 src/Reflex/Dom/Xhr.hs+8−5
src-ghc/Reflex/Dom/Xhr/Foreign.hs+20
@@ -134,3 +134,23 @@ xmlHttpRequestSetResponseType xhr t = do
134134 _ <- jsevaluatescript c script o nullPtr 1 nullPtr
135135 return ()
136136
137+xmlHttpRequestGetStatus :: XMLHttpRequest -> IO Word
138+xmlHttpRequestGetStatus xhr = do
139+ let c = xhrContext xhr
140+ script <- jsstringcreatewithutf8cstring "this.status"
141+ s <- jsevaluatescript c script (xhrValue xhr) nullPtr 1 nullPtr
142+ d <- jsvaluetonumber c s nullPtr
143+ return $ truncate d
144+
145+xmlHttpRequestGetStatusText :: XMLHttpRequest -> IO String
146+xmlHttpRequestGetStatusText xhr = do
147+ let c = xhrContext xhr
148+ script <- jsstringgetmaximumutf8cstringsize "this.statusText"
149+ t <- jsevaluatescript c script (xhrValue xhr) nullPtr 1 nullPtr
150+ j <- jsvaluetostringcopy c t nullPtr
151+ l <- jsstringgetmaximumutf8cstringsize j
152+ s <- allocaBytes (fromIntegral l) $ \ps -> do
153+ _ <- jsstringgetutf8cstring'_ j ps (fromIntegral l)
154+ peekCString ps
155+ return $ Just s
156+
src/Reflex/Dom/Xhr.hs+8−5
@@ -1,15 +1,18 @@
11module Reflex.Dom.Xhr
22 ( module Reflex.Dom.Xhr
33 , XMLHttpRequest
4+ , responseTextToText
5+ , xmlHttpRequestGetReadyState
6+ , xmlHttpRequestGetResponseText
7+ , xmlHttpRequestGetStatus
8+ , xmlHttpRequestGetStatusText
49 , xmlHttpRequestNew
10+ , xmlHttpRequestOnreadystatechange
511 , xmlHttpRequestOpen
12+ , xmlHttpRequestSend
613 , xmlHttpRequestSetRequestHeader
714 , xmlHttpRequestSetResponseType
8− , xmlHttpRequestOnreadystatechange
9− , xmlHttpRequestGetReadyState
10− , xmlHttpRequestGetResponseText
11− , responseTextToText
12− , xmlHttpRequestSend)
15+ )
1316where
1417
1518import Control.Concurrent