我正在使用包curl来发出Http请求(并且包str使用正则表达式)。我正在编译我的项目中的文件,没有问题,当我用js_of_ocaml编译file.byte时,我有这些错误:
js_of_ocaml --disable 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
我知道缺少原语并导致我遇到错误但是有一个解决方案可以修复它吗?
答案 0 :(得分:2)
一些OCaml库使用以简单C编写的原语。出于显而易见的原因,js_of_ocaml无法将它们链接到Javascript。在这种情况下,您需要手动实现它们,这在manual。
中提到Str模块的函数在ECMAScript库中具有等价物,所以你可能需要使用它们(如果有人没有创建与Str具有相同接口的helper模块并在引擎下调用Javascript函数)
答案 1 :(得分:1)
要在js_of_ocaml中执行http请求,您需要使用该模块:http://ocsigen.org/js_of_ocaml/2.5/api/XmlHttpRequest