gpt4 book ai didi

api - 如何将 CORS 添加到 compojure-api 应用程序?

转载 作者:行者123 更新时间:2023-12-02 09:25:50 27 4
gpt4 key购买 nike

如何将 CORS 添加到此代码段?

(def app
(api
{:swagger {:ui "/docs"
:spec "/swagger.json"}}

(GET "/route-a" [] "a")
(GET "/route-b" [] "b")
(GET "/route-c" [] "c")))

我想使用https://github.com/r0man/ring-cors并尝试过这个,但它似乎没有做任何事情。我希望看到响应 header 包含 Access-Control-Allow-Origin 但它丢失了。

(-> (api
{:swagger {:ui "/docs"
:spec "/swagger.json"}}

(GET "/route-a" [] "a")
(GET "/route-b" [] "b")
(GET "/route-c" [] "c"))

(wrap-cors :access-control-allow-origin #"http://localhost:81"
:access-control-allow-headers ["Origin" "X-Requested-With"
"Content-Type" "Accept"]
:access-control-allow-methods [:get :put :post :delete :options]))

最佳答案

仅当请求具有与指定正则表达式匹配的 Origin header 时,才会返回特定于 CORS 的响应 header (当在浏览器中使用 XMLHttpRequest 发出请求时,原始 header 会自动添加)。

如果你尝试:

curl -vH "Origin: http://localhost:81" localhost:3000/route-a

(假设您的 API 在端口 3000 上可用),您将看到添加了必要的响应 header 。来自 http://localhost:81 的 AJAX 请求也应该可以工作。

关于api - 如何将 CORS 添加到 compojure-api 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52745107/

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