我正在学习榆树并且正在取得公平的进步。但我无法让Http.send工作。预期的JSON字符串未从服务器返回,但它直接在浏览器中工作。我的JSON解码器看起来很稳固,我的Http.send是我读过的文本。使用--debug进行编译时,模型在运行期间不会更改。我在调试Elm时是绿色的,所以我只是在更新中创建了一些虚拟返回模型,以查看它在哪个阶段失败。在下面的代码中,严格用于调试目的,我总是返回companyTypeList1(" DIDN' T RUN"),这似乎意味着我的Cmd - listCompanyTypes - 根本没有被调用。但我没有收到任何错误。有什么理由说Cmd不会运行或只是在没有做任何事情的情况下返回初始模型?这是榆木0.18。我无法在SO或网络上找到关于此问题的任何主题,所以我必须做一些stoopid。任何帮助将不胜感激。
import Http exposing (..)
import Json.Decode as Decode exposing (..)
import Objects.CompanyTypes.Model exposing (..)
import Objects.CompanyTypes.Msg exposing (..)
update : Msg -> List CompanyType -> ( List CompanyType, Cmd Msg )
update msg companyTypeList =
let
companyTypeList1 =
[ { id = 0, name = "DIDN'T RUN" } ]
companyTypeList2 =
[ { id = 0, name = "GOOD RETURN" } ]
companyTypeList3 =
[ { id = 0, name = "ERROR RETURN" } ]
in
case msg of
List ->
( companyTypeList1, listCompanyTypes )
ListResult (Ok newCompanyTypeList) ->
( companyTypeList2, Cmd.none )
ListResult (Err _) ->
( companyTypeList3, Cmd.none )
listCompanyTypes : Cmd Msg
listCompanyTypes =
Http.send ListResult (Http.get "http://laserver:8080/company_types" decodeCompanyTypes)
decodeCompanyTypes : Decoder (List CompanyType)
decodeCompanyTypes =
list decodeCompanyType
decodeCompanyType : Decoder CompanyType
decodeCompanyType =
map2 CompanyType
(field "id" int)
(field "name" string)
更新:我读到CORS可能是问题,所以我在我的Apache服务器上检查它。我已启用mod_header并添加了一个'标头设置了Access-Control-Allow-Origin" *"'进入我的网站配置。它没有用,但我会小提并报告。