将AJAX与warp HTTP服务器一起使用

时间:2012-04-02 07:47:00

标签: haskell yesod haskell-warp

我在尝试理解WARP如何与客户端进行交互时遇到了一些麻烦。如果我是通过WARP构建我的服务器端,并且有一个Javascript客户端。我可以假设使用AJAX作为客户端和服务器端之间的桥梁吗?

1 个答案:

答案 0 :(得分:6)

是。 AJAX不需要了解有关您的服务器的任何信息。它需要做的只是在网址上请求一些内容,然后得到回复。

例如,假设您正在使用jquery。您的Ajax请求可能如下所示:

$.ajax({
  url: "/hello",
}).done(function() { 
  $(this).addClass("done");
});

这是在网址/hello请求某些内容。那么你的Yesod应用程序需要在/hello

提供服务
mkYesod "yourapp" [parseRoutes|
/hello HelloR GET
|]

getHomeR :: Handler RepHtml
getHelloR = defaultLayout [whamlet|Hello!|]

(我没有使用Yesod,所以我不能声称该代码是准确的。)

由于WARP是WAI处理程序,因此您可以在其上运行任何WAI应用程序。这是另一个例子,这次使用scotty

main = scotty 3000 $ do
  get "/hello" $ html "Hello!"