15得票2回答
使用Ring和Compojure为应用程序和API路由提供不同的中间件服务

我有一个使用ring+compojure编写的应用程序,我希望能够根据路由属于Web应用程序还是基于JSON的API来应用不同的中间件。 我在Stack Overflow和其他论坛上找到了一些关于这个问题的答案,但这些答案似乎比我正在使用的解决方案更复杂。我想知道我所做的方式是否存在缺陷,以...

17得票4回答
在Clojure/Ring中,如何删除一个cookie?

假设我想要删除一个cookie(例如,Ring的会话cookie): 制作一个响应映射,如下所示:{:cookies {"ring-session" {:value "kill", :max-age 1}}} 看起来能工作,但感觉有点不太正规。 有没有一种简单的方法只是删除它?

8得票1回答
无效的防伪造令牌

我在使用Compojure模板创建的Clojure Webapp项目中使用POST方法时遇到了“无效的防伪标记”错误。 我进行了研究,发现Ring中间件会为来自其他站点的经过身份验证的请求创建CSRF(跨站请求伪造)令牌(以使用已经登录的其他人的凭据并访问不允许访问的页面)。 这些令牌是默...

10得票1回答
为什么Ring的资源响应会以application/octet-stream内容类型响应?

我正在尝试弄清楚为什么Ring的resource-response选择使用application/octet-stream内容类型进行响应。最近,我更新了一些示例代码,那是我学习的样本代码,使其使用较新的ring-defaults。在使用ring-defaults之前,此代码以html内容类型...

15得票3回答
如何在Clojure/Compojure/Ring中将地图转换为URL查询字符串?

在Clojure / Compojure中,我如何将一个map转换为URL查询字符串?{:foo 1 :bar 2 :baz 3} 到foo=1&bar=2&baz=3 在compojure中是否有任何实用方法可以做到这一点?

7得票1回答
如何在Compojure中使用CORS和JSON响应?

我正在创建一个简单的 API,该 API 返回 JSON 数据给用户。出于开发目的,我想启用 CORS,以便我的 react 前端可以调用本地的 API。目前,它会报错: "Response to preflight request doesn't pass access control c...

9得票3回答
将HTTP请求主体作为字符串读取

处理ring服务器中的http请求时,请求数据的主体存储在请求哈希映射中的键:body中。例如,如下所示: #object[org.eclipse.jetty.server.HttpInputOverHTTP 0x2d88a9aa "HttpInputOverHTTP@2d88a9aa"] ...

12得票2回答
ring-json的wrap-json-response中间件和compojure返回text/plain?

我试图在我的 compojure 应用程序中使用 ring-json 的 wrap-json-response 中间件。我有一个简单的 GET 处理程序,返回类似 {:foo 1} 的映射,当我访问 URL 时,ring 响应 text/plain 和空响应体。我似乎无法让它响应地图的 JSO...

8得票3回答
使用Emacs/Cider开发Compojure/Ring应用程序的正确方法是什么?

在开发基于compojure/ring的Clojure应用程序时,使用emacs/cider的正确工作流程/路径是什么? 我感觉我可以“连接”到正在运行的compojure/ring进程,更改其代码,读取/更改其数据,但我不知道如何正确地执行它。什么是正确的方法? 我该怎么做? lein...

9得票2回答
在Clojure的Ring Web应用程序中生成和流式传输zip文件

我有一个Ring处理程序需要完成以下任务: 压缩几个文件 将Zip流传输到客户端 现在我已经做得差不多了,但只有第一个压缩条目被传输,之后就会停止/中断。我感觉这与刷新/传输有关的问题出在哪里。 这是我的(compojure)处理程序: (GET "/zip" {:as reque...