Как добавить заголовки в биди-редирект? - PullRequest
0 голосов
/ 08 марта 2020

У меня есть следующее перенаправление:

#bidi.ring.Redirect{:status 307, :target "https://some-url"}

К которому я пытаюсь добавить заголовки cors следующим образом:

(let [redirect (->Redirect 307 "https://some-url")
        redirect- (assoc redirect
                         :headers
                         {"Access-Control-Allow-Origin"
                          "https://some-url"
                          "Access-Control-Allow-Methods"
                          "POST, GET, OPTIONS"
                          "Access-Control-Allow-Headers" "Content-Type"
                          "Location" (:target redirect)
                          })
        ]
    (prn "redirect is " redirect-)
    redirect-)

Я получаю следующий отпечаток:

"redirect is" #bidi.ring.Redirect{:status 307, 
:target "http://some-url" 
:headers {"Access-Control-Allow-Origin" "https://some-url", 
"Access-Control-Allow-Methods" "POST, GET, OPTIONS", 
"Access-Control-Allow-Headers" "Content-Type"}}

Что кажется правильным. Но когда я делаю запрос от клиента, ответ не содержит этих заголовков. Что я делаю не так?

1 Ответ

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

Возможно, :headers, который вы положили в объект Redirect Биди, нигде не go.

Действительно, если вы будете следовать ссылке bidi.ring.Redirect на исходный код (https://github.com/juxt/bidi/blob/master/src/bidi/ring.cljc ), вы увидите подсказку, что она преобразует перенаправление в ответ на звонок точно,

 {:status  status
  :headers {"Location" location}
  :body    (str "Redirect to " location)}

Я не знаю много о Биди, но, возможно, вы можете просто вернуть свой собственный { : status 307,: headers {...},: body "See elsewhere"} map, если перенаправление Bidi слишком ограничительное.

...