Использование AJAX с HTTP-сервером warp

У меня проблемы с тем, чтобы понять, как WARP потенциально может взаимодействовать со стороной клиента. Если бы я создавал свою серверную часть через WARP и имел клиентскую сторону Javascript. Могу ли я гипотетически использовать AJAX в качестве моста между клиентской и серверной сторонами?


person George Vasels    schedule 02.04.2012    source источник
comment
Сегодня я опубликовал соответствующий вопрос и ответ, может быть, вы хотите взглянуть   -  person Uli Köhler    schedule 05.03.2014


Ответы (1)


да. Для работы AJAX не нужно ничего знать о вашем сервере. Все, что ему нужно сделать, это запросить что-то по URL-адресу и получить ответ.

Например, предположим, что вы используете jquery. Ваш запрос Ajax может выглядеть так:

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

Это что-то запрашивает по URL /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!"
person Vlad the Impala    schedule 02.04.2012
comment
Спасибо за ответ. Это все было выше моей головы последнюю неделю или около того. Вы дали мне это очень ясно и с пониманием. Спасибо! - person George Vasels; 02.04.2012