首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Clojure Enlive插入防伪令牌

如何使用Clojure Enlive插入防伪令牌
EN

Stack Overflow用户
提问于 2014-10-20 18:57:46
回答 1查看 273关注 0票数 1

我尝试使用ring.util.anti-forgery将防伪标记插入到html表单中:

代码语言:javascript
复制
(html/defsnippet post-edit-form "templates/blog.html" [:.post-edit]
   []
   [:form] (html/after (html/html-content (anti-forgery-field))))

获取异常:

代码语言:javascript
复制
java.lang.IllegalArgumentException
Don't know how to create ISeq from: net.cgrand.enlive_html$html_content$fn__5571
RT.java:505 clojure.lang.RT.seqFrom
RT.java:486 clojure.lang.RT.seq
core.clj:133    clojure.core/seq
enlive_html.clj:227 net.cgrand.enlive-html/flatten-nodes-coll[fn]
enlive_html.clj:232 net.cgrand.enlive-html/flatten-nodes-coll[fn]
LazySeq.java:40 clojure.lang.LazySeq.sval
...

我也尝试了一下:

代码语言:javascript
复制
(html/defsnippet post-edit-form "templates/blog.html" [:.post-edit]
  []
  [:form] (html/after (html/html [:input {:id "__anti-forgery-token"
                                          :name "__anti-forgery-token"
                                          :type "hidden"
                                          :value *anti-forgery-token*}])))

不工作:(

(防伪字段)只生成具有一个“输入”的html字符串。但是我不能把它插入到表单中。

EN

回答 1

Stack Overflow用户

发布于 2014-10-21 16:15:50

成功了!

需要使用html-snippet而不是html-content:

代码语言:javascript
复制
(html/defsnippet post-edit-form "templates/blog.html" [:.post-edit]
  []
  [:form] (html/append (html/html-snippet (anti-forgery-field))))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26463969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档