2012-04-02 20 views
1

Ich habe ein paar Probleme damit, zu verstehen, wie WARP möglicherweise mit der Client-Seite interagieren kann. Wenn ich meine Server-Seite über WARP erstellen würde und eine Javascript-Client-Seite hätte. Könnte ich AJAX hypothetisch als Brücke zwischen der Clientseite und der Serverseite verwenden?Verwendung von AJAX mit dem Warp-HTTP-Server

+0

I posted a verwandten Q & A heute, vielleicht haben Sie [ein Blick] (http://stackoverflow.com/a/22183490/2597135) –

Antwort

6

Ja. AJAX muss nichts über Ihren Server wissen, um zu funktionieren. Alles, was es tun muss, ist etwas an einer URL anzufordern und eine Antwort zu erhalten.

Angenommen, Sie verwenden jQuery. Ihre Ajax-Anfrage könnte wie folgt aussehen:

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

Dies wird /hello etwas unter der URL anzufordern. Dann wird Ihr Yesod App benötigt etwas an /hello dienen:

mkYesod "yourapp" [parseRoutes| 
/hello HelloR GET 
|] 

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

(Ich habe nicht verwendet Jessod, so kann ich nicht behaupten, dass dieser Code korrekt ist).

Da WARP ein WAI-Handler ist, können Sie jede WAI-Anwendung darauf ausführen. Hier ist ein weiteres Beispiel, diesmal mit scotty:

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

Vielen Dank für die haben wollen Antwort. Das war in der letzten Woche alles über meinem Kopf. Du hast es mir klar und verständlich gemacht. Vielen Dank! –