Temel bir Ajax isteği gerçekleştirmek istiyorum, hepsi bu.Refleks/refleksli XhrRequest
Ön uç için reflex
ve arka uç için Scotty
kullanıyorum. Firefox Web Konsolu bana isteğin başarılı olduğunu ve beklenen sonucu görebileceğimi söylüyor. Ancak web sitesi Just "default"
'dan Just "success!"
yerine Nothing
'a geçer.
import Reflex (holdDyn)
import Reflex.Dom (button, el, mainWidget, display)
import Reflex.Dom.Xhr (performRequestAsync, xhrRequest, decodeXhrResponse)
import Reflex.Class (tag, constant)
import Data.Default (def)
main :: IO()
main = do
mainWidget $ el "div" $ do
buttonEvent <- button "click me"
let defaultReq = xhrRequest "GET" "mystring" def --served by Scotty
asyncEvent <- performRequestAsync (tag (constant defaultReq) buttonEvent)
buttonDyn <- holdDyn (Just "default") $ fmap decodeXhrResponse asyncEvent
display buttonDyn
ve Scotty
kısmı:: İşte
decodeXhrResponse
yakın hatayı şüpheli istek başarılı oldu söyle yana
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
import Network.Wai.Middleware.Static
main = scotty 3000 $ do
middleware $ staticPolicy (noDots >-> addBase "/mnt/b/haskell/try-reflex/hello.jsexe")
get "/" $ do
file "/mnt/b/haskell/try-reflex/hello.jsexe/index.html"
get "/mystring" $ html "success!"
ama Ben sadece (okunmaz) Javascript derlenmiş beri hata ayıklama devam etmeliyim biraz kayboldum.
Her şeyi kurmak ve Nix ortamında ghcjs hello.hs
ile derlenmiş olan TryHub denen Nix komut dizisini kullandım.
Düzenleme: curl
çıktısını ekleme: _xhrResponse_body
ile decodeXhrResponse
değiştirilmesi ve varsayılan dize için Text
kullanarak çalıştı: freenode #reflex-frp
itibaren
$ curl -G http://localhost:3000/mystring
success!%