如何将CORS添加到compojure api应用程序?
如何将CORS添加到此代码段如何将CORS添加到compojure api应用程序?,api,clojure,cors,compojure,compojure-api,Api,Clojure,Cors,Compojure,Compojure Api,如何将CORS添加到此代码段 (def app (api {:swagger {:ui "/docs" :spec "/swagger.json"}} (GET "/route-a" [] "a") (GET "/route-b" [] "b") (GET "/route-c" [] "c"))) 我想使用,并尝试过这个,但它似乎没有做任何事情。我希望看到响应头包含Access Con
(def app
(api
{:swagger {:ui "/docs"
:spec "/swagger.json"}}
(GET "/route-a" [] "a")
(GET "/route-b" [] "b")
(GET "/route-c" [] "c")))
我想使用,并尝试过这个,但它似乎没有做任何事情。我希望看到响应头包含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
头时,才会返回特定于CORS的响应头(当在浏览器中使用XMLHttpRequest
发出请求时,会自动添加Origin头)
如果您尝试:
curl -vH "Origin: http://localhost:81" localhost:3000/route-a
(假设您的API在端口3000上可用),您将看到添加了必要的响应头。来自
http://localhost:81
也应该可以工作。我想你需要允许的方法来添加允许的方法,但它仍然不能为我做任何事情:如果我在localhost:3000上运行API并执行curl-vH“Origin:http://localhost:81“本地主机:3000/route-a
,我在输出中获得了Access Control Allow Origin和Access Control Allow Methods头