ajax – 如何在Elm Client和Haskell(Yesod)服务器之间发送JSON

我正在尝试从客户端到服务器进行基本的 JSON通信,使用以下Elm代码
import open Http

result res = case res of
    Success a -> a
    Waiting -> "Waiting"
    Failure n a-> "Failure " ++ (show n) ++ " " ++ (show a)


main =   lift asText <| lift (show . result) <|  send <| constant  <| post "http://localhost:3000" "{foo : true}"

服务器完全如this part of the Yesod book所示.

但是,当我运行请求时,我得到了输出

"\"Failure 0 []\""

有没有人知道我要做些什么来让Elm客户端与Yesod服务器正常通信?我尝试过一个Python客户端,请求工作得很好.同样,在Yesod网站上有几个成功的Http请求的例子,所以我相信两个库都正常工作,但我使用它们是错误的.

更新:问题是客户端.我能够使用Chrome并禁用安全选项,并且不对Yesod进行任何更改.我会寻找一种解决方法,但这至少足以让我的开发继续下去.

这是由某些站点上的跨站点脚本安全功能引起的.最近在榆树邮件列表上有 brought up(由我).如果您致力于使用特定服务器,目前还没有解决方法,尽管我很幸运能够在elm-server上托管文件,elm-server承载您运行它的目录中的所有文件.

你应该检查一下javascript控制台,你会发现像XMLHttpRequest这样的东西无法加载http://www.google.com/. Access-Control-Allow-Origin不允许使用原始http:// localhost:8000.如果不这样做,那么这是一个全新的问题.但我对此表示怀疑.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...