2

我正在使用包 curl 来发出 Http 请求(以及使用正则表达式的包 str)。我正在我的项目中编译文件,没问题,当我用 js_of_ocaml 编译 file.byte 时,我有这些错误:

js_of_ocaml --禁用 genprim foo.byte

Missing primitives:
  helper_curl_easy_cleanup
  helper_curl_easy_duphandle
  helper_curl_easy_getinfo
  helper_curl_easy_init
  helper_curl_easy_perform
  helper_curl_easy_setopt
  helper_curl_global_init
  re_search_forward
  re_string_match

当我包含生成的 js 文件时,我在 Web 控制台中出现此错误: Uncaught ReferenceError: helper_curl_global_init is not defined

我知道缺少原语,这导致了我遇到的错误,但是有解决方案来解决这个问题吗?

4

2 回答 2

3

一些 OCaml 库使用用纯 C 编写的原语。出于显而易见的原因,js_of_ocaml 无法将它们链接到 Javascript。在这种情况下,您需要手动实现它们,这在手册中有所提及。

Str 模块中的函数在 ECMAScript 库中具有等价物,因此您可能需要使用它们(如果有人没有创建与 Str 具有相同接口的辅助模块并在后台调用 Javascript 函数)

于 2015-03-18T12:53:50.317 回答
2

要在 js_of_ocaml 中执行 http 请求,您需要使用该模块:http ://ocsigen.org/js_of_ocaml/2.5/api/XmlHttpRequest

于 2015-03-18T14:22:15.803 回答