после редиректа? не работает в освободителе или предпечатная реакция не удалась - PullRequest
0 голосов
/ 04 марта 2020

У меня есть следующий код:

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 successful и XMLHttpRequest cannot load [authorize-uri] due to access control checks. Когда я оборачиваю карту местоположения перенаправления вокруг кольцевого ответа, однако я я не получаю ошибки, но я не получаю перенаправление в браузере. Что я делаю не так?

- РЕДАКТИРОВАТЬ -

Это моя конфигурация system.components.

(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
  )

Но я все еще получаю заголовок "Нет 'Access-Control-Allow-Origin' на запрошенном ресурс." ошибка.

1 Ответ

0 голосов
/ 05 марта 2020

Пожалуйста, прочитайте о CORS . Вам нужно будет либо внедрить метод OPTIONS в ресурсе, либо обернуть ваш обработчик соответствующим промежуточным программным обеспечением, например, ring-cors .

...