compojure api+;允许CORS

compojure api+;允许CORS,api,clojure,compojure,compojure-api,Api,Clojure,Compojure,Compojure Api,我正在尝试将我的简单服务器设置为允许CORS。我正在从我正在进行的clojurescript应用程序中请求localhost 我给出了一个搜索,例如回答:。但是从我看到的情况来看,在这个回答中,解决方案是根据请求提供的,我希望在服务器中提供解决方案 以下是我所拥有的: (ns my-project.handler (:require [compojure.api.sweet :refer :all] [ring.util.http-response :refer :a

我正在尝试将我的简单服务器设置为允许CORS。我正在从我正在进行的clojurescript应用程序中请求localhost

我给出了一个搜索,例如回答:。但是从我看到的情况来看,在这个回答中,解决方案是根据请求提供的,我希望在服务器中提供解决方案

以下是我所拥有的:

(ns my-project.handler
  (:require [compojure.api.sweet :refer :all]
            [ring.util.http-response :refer :all]
            [ring.middleware.cors :refer [wrap-cors]]
            [punch-card-back.projects-file :as prj]
            [schema.core :as s]))

(s/defschema Any
  {s/Any s/Any})

(def app
  (-> (api
       {:swagger
        {:ui "/"
         :spec "/swagger.json"
         :data {:info {:title "My project"
                       :description "Compojure Api example"}
                :tags [{:name "api", :description "some apis"}]}}}

       (context "/api" []
         :tags ["api"]

         (GET "/get_projects" []
           :summary "Get all projects"
           (ok (prj/get-projects)))

         (POST "/save_project" []
           :body [request Any]
           :summary "Saves project into file"
           (ok (prj/save-project request)))))
      (wrap-cors :access-control-allow-origin #".*"
                 :access-control-allow-methods [:get :post])))
我所说的是基于我在互联网和自述中发现的一些问题

我得到的错误在浏览器的控制台中:

Access to XMLHttpRequest at 'http://localhost:31000/api/save_project' from origin 'http://localhost:8280' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
答案是

{:status 0, :success false, :body "", :headers {}, :trace-redirects ["http://localhost:31000/api/save_project" "http://localhost:31000/api/save_project"], :error-code :http-error, :error-text " [0]"}
服务器中似乎没有发生任何事情。在控制台中,没有任何更改,并且我在功能
prj/save project
中输入的打印不会触发

谁能给我指一下正确的方向吗


谢谢

我明白了。至少有一种方式


我遇到的问题是,我是用凭据提出请求的。当我正确地删除它们时,我能够提出请求。

请添加不起作用的内容:您会遇到什么错误或看到什么错误行为?完成@cfrick,我按照你的建议更新了我的问题。你提供的代码不能为我执行,在我看来,
[“*”]
应该是
[\\“*”]
?抱歉@javahippie,这确实是个错误