热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HaskellScotty和ElmHttpNetworkError

如何解决《HaskellScotty和ElmHttpNetworkError》经验,为你挑选了1个好方法。

我想通过haskell用于后端和elm用于前端来研究Web开发.所以我写了这两个简单的"hello world"代码片段

榆树:

import Html exposing (..)
import Html.Events exposing (..)
import Http
import Json.Decode as Decode

main : Program Never Model Msg
main = Html.program
  { view = view
  , update = update
  , init = ("default", Cmd.none)
  , subscriptiOns= \_ -> Sub.none }

type alias Model = String

type Msg = Get | Response (Result Http.Error String)

update : Msg -> Model -> (Model, Cmd Msg)
update msg model = case msg of
  Get -> (model, get)
  Response (Ok s) -> (s, Cmd.none)
  Response (Err e) -> (toString e, Cmd.none)


view : Model -> Html Msg
view model = div []
  [button [onClick (Get)] [text "click me"],
   text model]


get : Cmd Msg
get =  let url = "http://localhost:3000/get"
       in Http.send Response (Http.get url Decode.string)

哈斯克尔/斯科蒂:

import Web.Scotty

main = scotty 3000 $ get "/get" $ json ("hello world" :: String)

两者都完美地工作 - 这意味着榆树代码可以从像httpbin这样的服务器获取数据,而scotty服务器处理我用浏览器或wget/curl等工具发送的请求,但当我尝试将两者一起使用时,http.send call in elm返回网络错误

我怀疑这可能是一个问题,两台服务器都托管在同一台计算机上(不知道为什么,但我想消除这种可能性)所以我在另一台计算机上托管客户端站点,我知道它与计算机有一个有效连接托管spock后端(与wget等一起工作)但它仍然无效.

我错过了一些明显的东西,或者问题是什么?thx提前



1> Chad Gilbert..:

听起来您的问题是由于跨源请求共享(CORS)限制.您可以使用wai-cors来设置CORS策略.

例:

import Web.Scotty
import Network.Wai.Middleware.Cors

main = scotty 3000 $ do
    middleware simpleCors
    get "/get" $ json ("hello world" :: String)


推荐阅读
  • ImlookingtowriteaPythonscript(using3.4.3)thatgrabsaHTMLpagefromaURLandcangothro ... [详细]
  • 如何解决《在Python中浏览HTMLDOM》经验,为你挑选了1个好方法。 ... [详细]
  • 如何解决《为什么此HTTP请求无法在AWSLambda上运行?》经验,为你挑选了3个好方法。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • HowtofetchHTMLinCorC++?withSockets.CanyougivemeaExamplecodepls?如何在C或C++中获取HTML?带套 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 表单代码 ... [详细]
  • “自主设计与实施的故障注入微服务Sidecar,欢迎大佬批评指正!”
    “故障注入Sidecar“——为您的微服务注入故障以验证集群性能!由于导师和实验室师兄们的科研需要,本人专门以Sidecar的模式设计了一个用于错误注入的微服务模块。该模块可以与任 ... [详细]
  • 背景用Python做过爬虫的小伙伴可能接触过Scrapy,GitHub:https:github.comscrapyscrapy。Scrapy的确是一个 ... [详细]
  • iverecentlytriedtogetsomeResponsefromanURLusingjQuery.ThereforeIcopiedagetrequest ... [详细]
author-avatar
boybeta
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有