帖子重定向?未在解放者或飞行前响应中工作不成功



我有以下代码:

defresource handle-sign-in [redirect-uri]
:available-media-types ["application/json"]
:allowed-methods [:post]
:post! (prn "welcome to post")
:post-redirect? (fn [_] ;;(ring-response
{:location redirect-uri}
;;)
)
)

当我发送请求时,我得到错误Preflight response is not successfulXMLHttpRequest cannot load [authorize-uri] due to access control checks.然而,当我将重定向位置图包裹在环形响应周围时,我不会得到错误,但在浏览器中也不会得到重定向。我做错了什么?

--编辑--

这是我的系统组件配置。

(defn config []
{:http-port  (Integer. (or (env :port) 5000))
:middleware [[wrap-defaults api-defaults]
wrap-with-logger
wrap-gzip
ignore-trailing-slash
[wrap-reload {:dir "../../src"}]
[wrap-trace :header :ui]
wrap-params
wrap-keyword-params
wrap-cookies
[wrap-cors #".*"]
]})

这就是我的新资源:

(defresource handle-sign-in [authorize-uri]
:available-media-types ["application/json"]
:allowed-methods [:post]
:post-redirect? true
:as-response (fn [d ctx]
(-> (as-response d ctx) ;; default implementation
(assoc-in [:headers "Access-Control-Allow-Origin"] "*")
(assoc-in [:headers "Access-Control-Allow-Headers"] "Content-Type")
)
)
:location authorize-uri
)

但我仍然得到"请求的资源上不存在‘访问控制允许来源’标头。"错误。

请阅读CORS。您需要在资源中实现OPTIONS方法,或者使用适当的中间件(例如ring-cors(包装处理程序。

最新更新