Clojure环形cors/包裹cors设置
我正在使用并试图为(wrap cors)函数传递cors策略。这就是我的代码的样子:Clojure环形cors/包裹cors设置,clojure,cors,clojurescript,Clojure,Cors,Clojurescript,我正在使用并试图为(wrap cors)函数传递cors策略。这就是我的代码的样子: (def cors-policy {:access-control-allow-origin [#"http://localhost:8080"] :access-control-allow-methods [:get :put :post]}) (def dev-handler (-> #'japi/routes wrap-rel
(def cors-policy
{:access-control-allow-origin [#"http://localhost:8080"]
:access-control-allow-methods [:get :put :post]})
(def dev-handler (-> #'japi/routes
wrap-reload
wrap-params
(wrap-cors cors-policy) ;; <- Here
wrap-json-response
(wrap-defaults api-defaults)
push-state/handle))
(def cors策略
{:访问控制允许原点[#”http://localhost:8080"]
:访问控制允许方法[:get:put:post]})
(def dev handler(->#'japi/routes)
包裹重新装载
包裹参数
(wrap cors cors policy);;包装器使用一种“模式”,这种模式有时会被看到并关注于
“人类消费”的功能。它采取的“其余”的功能
参数并将其成对转换为映射。这已经是“meh”
对于人类和机器来说都是非常糟糕的(例如,作为参数传递)
你必须这样称呼它:
(wrap-cors $handler :a 1 :b 2)
因此,最简单的方法是:
(def cors-policy
[:a 1
:b 2])
(apply wrap-cors $handler cors-policy)
或者如果你想坚持地图(这是一个好方法),你必须
事先把地图展平
(apply wrap-cors $handler (into [] cat cors-policy))
但是使用线程宏->
后,这就变得更难了
现在(->
只是一个宏,生成的代码将是(apply$handler wrap cors…)
,这是意外的
因此,在这一点上,我将添加我自己的defn
,它只需要处理程序
再来一次,例如
(defn cors-wrapper
[handler config-map]
(apply wrap-cors handler (into [] cat config-map)))