gpt4 book ai didi

clojure - 如何在 Compojure 中使用 CORS 和 JSON 响应?

转载 作者:行者123 更新时间:2023-12-04 11:45:40 26 4
gpt4 key购买 nike

我正在创建一个简单的 API,它返回 JSON数据返回给用户。出于开发目的,我想启用 CORS,以便我的 react前端可以在本地调用API。目前,它提示

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3001' is therefore not allowed access.



问题 : 我如何使用 ring-cors (或类似的东西)启用 CORS 并发回 JSON 数据?

观察 : 同当前 (app ..) , (wrap-cors ...)不提供跨源头。

我已经尝试了几种不同的顺序,但似乎都不起作用。例如, (wrap cors ...)其次是 (wrap-defaults ...)不起作用。

MWE
(ns qitab-api.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]
[ring.middleware.json :refer [wrap-json-response wrap-json-body]]
[ring.middleware.cors :refer [wrap-cors]]
[ring.util.response :as r]))

(defroutes app-routes
(GET "/" []
(r/response {:hello "World!!"}))
(route/not-found "Not Found"))

(def app
(-> app-routes
wrap-json-body
wrap-json-response
(wrap-defaults site-defaults)
(wrap-cors :access-control-allow-origin [#".*"] :access-control-allow-
headers [:get])))

附言但是,我查看了与 CORS 和 Compojure 相关的其他几个问题,但没有一个涉及 JSON 方面。

最佳答案

:access-control-allow-headers应该是 :access-control-allow-methods .那么它应该工作。

关于clojure - 如何在 Compojure 中使用 CORS 和 JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51503910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com