ClojureScript中的多部分/表单数据支持

ClojureScript中的多部分/表单数据支持,clojurescript,Clojurescript,如何在ClojureScript中提交多部分/表单数据?是否有支持此功能的库?我可以回过头来看,例如jquery.form.js,但我更喜欢简单的ClojureScript解决方案。看看: =======更新====== 你需要一些iframe黑客。阅读并确认: 看看: =======更新====== 你需要一些iframe黑客。阅读并确认: 我最近向cljs http发出了一个请求,以支持表单数据。Util r0man将其合并,您可以在 已编辑:拉取请求已合并。改为查看原始存储库 我就是这样做

如何在ClojureScript中提交多部分/表单数据?是否有支持此功能的库?我可以回过头来看,例如
jquery.form.js
,但我更喜欢简单的ClojureScript解决方案。

看看:

=======更新======

你需要一些iframe黑客。阅读并确认:

看看:

=======更新======

你需要一些iframe黑客。阅读并确认:


我最近向cljs http发出了一个请求,以支持表单数据。Util r0man将其合并,您可以在

已编辑:拉取请求已合并。改为查看原始存储库

我就是这样做的:

(defn generate-form-data [params]
  (let [form-data (js/FormData.)]
    (doseq [[k v] params]
      (.append form-data (name k) v))
    form-data))

(defn upload [file]
  (go (let [response (<! (http/post "http://localhost/upload"
                                    {:body (generate-form-data {:file file})}))]
        (prn (:status response))
        (prn (:body response)))))

;; some-dom-element is a single file upload input
;; <input type="file">
(upload (-> some-dom-element .-files first))
(defn生成表单数据[params]
(让[表单数据(js/FormData.)]
(doseq[[k v]参数]
(.附加表单数据(名称k)v))
表格(数据))
(defn上传[文件]
(去,让[回答](
(上传(->一些dom元素。-首先上传文件))
如果您不想使用cljs http,请参阅其源代码中的
cljs http.core/request
,了解如何直接调用
XhrIo

我最近向cljs http发出了一个请求,以支持表单数据。如果Util r0man将其合并,您可以在

已编辑:拉取请求已合并。请改为查看原始存储库

我就是这样做的:

(defn generate-form-data [params]
  (let [form-data (js/FormData.)]
    (doseq [[k v] params]
      (.append form-data (name k) v))
    form-data))

(defn upload [file]
  (go (let [response (<! (http/post "http://localhost/upload"
                                    {:body (generate-form-data {:file file})}))]
        (prn (:status response))
        (prn (:body response)))))

;; some-dom-element is a single file upload input
;; <input type="file">
(upload (-> some-dom-element .-files first))
(defn生成表单数据[params]
(让[表单数据(js/FormData.)]
(doseq[[k v]参数]
(.附加表单数据(名称k)v))
表格(数据))
(defn上传[文件]
(去,让[回答](
(上传(->一些dom元素。-首先上传文件))
如果您不想使用cljs http,请参阅其源代码中的
cljs http.core/request
,了解如何直接调用
XhrIo

AFAIK它不支持multipart/formdataAFAIK它不支持multipart/formdataa上传需要一些iframe hack,从这里开始上传需要一些iframe hack,从这里开始使用
js/FormData
简单而优雅的解决方案。然而,这对ie 9及以下版本或?恐怕大多数Clojurescript库c都不起作用在广泛的兼容性方面,与JQuery相比,它是一个不可比拟的工具:(如果你这么认真的话,试着找一些FormData的纯javascript实现。也许是这一个,尽管我没有使用
js/FormData
浏览过它的源代码简单而优雅的解决方案。但是,这对ie 9及以下版本不起作用?恐怕大多数Clojurescript库在各种compa中都无法与JQuery相比兼容性:(如果你这么认真的话,试着找一些FormData的纯javascript实现。也许是这个,尽管我还没有看过它的源代码
(defn generate-form-data [params]
  (let [form-data (js/FormData.)]
    (doseq [[k v] params]
      (.append form-data (name k) v))
    form-data))

(defn upload [file]
  (go (let [response (<! (http/post "http://localhost/upload"
                                    {:body (generate-form-data {:file file})}))]
        (prn (:status response))
        (prn (:body response)))))

;; some-dom-element is a single file upload input
;; <input type="file">
(upload (-> some-dom-element .-files first))