Не удается выполнить запросы к сайту с включенным кольцом cors

У меня два кольцевых участка: mysite.comИ.api.mysite.com api.mysite.comring-corsвключено ли промежуточное ПО:

(def app
  (-> (make-handler v1-routes)
      (wrap-defaults api-defaults)
      (wrap-cors :access-control-allow-origin  [#".*"]
                 :access-control-allow-headers ["Content-Type"]
                 :access-control-allow-methods [:get :put :post :delete :options])))

Когда я делаю GETили POSTзапрос, preflight успешно, но GETили POSTтерпит неудачу с:

Заблокирован запрос перекрестного происхождения: одна и та же политика происхождения запрещает чтение
удаленный ресурс на http://api.site.com/v1/site . (Причина: CORS
отсутствует заголовок ‘Access-Control-Allow-Origin’).

Я могу видеть в отладчике, который Access-Control-Allow-Originвключен в OPTIONSответ, но не в последующем GETPOSTответе или.

Есть идеи, что случилось? Мое приложение немного сложное, а также имеет bidiliberator, и некоторые hostsфайлы и nginxвещи, происходящие. Я думаю, что они могут быть отложены на данный момент, и проблема связана с какой-то проблемой с middleware или конфигурацией middleware.

1 ответ

  1. Я не уверен, что вы можете использовать подстановочный знак на поддоменах. Подробнее см. Этот ответ SO. Похоже, спецификации требуется либо доменное имя или подстановочный знак, но не оба.

    Вы можете попробовать добавить свой домен, чтобы увидеть, если это устраняет проблему, а затем перейти оттуда.

    wrap-cors :access-control-allow-origin  [#"http://sitename.com"]