Redirect 如何在bidi重定向中添加标题?
我有以下建议:Redirect 如何在bidi重定向中添加标题?,redirect,clojure,header,cors,bidi,Redirect,Clojure,Header,Cors,Bidi,我有以下建议: #bidi.ring.Redirect{:status 307, :target "https://some-url"} 我正在尝试向其中添加cors标题,如下所示: (let [redirect (->Redirect 307 "https://some-url") redirect- (assoc redirect :headers {"Access-C
#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"}}
这似乎是正确的。但是当我从客户端发出请求时,响应不包含这些头。我做错了什么?也许你放在Bidi的
重定向对象中的:headers
不会去任何地方
事实上,如果您遵循对源代码()的bidi.ring.Redirect
引用,您将看到一个提示,它将把重定向转换为
{:status status
:headers {"Location" location}
:body (str "Redirect to " location)}
我对Bidi了解不多,但如果Bidi的重定向限制过大,也许您可以简单地返回自己的{:状态307,:标题{…},:body“请参阅其他地方”}映射。您是否确认浏览器收到的响应实际上是您想要的307响应?您是否检查了响应的HTTP状态代码?您可以使用浏览器devtools中的网络窗格进行检查。您应该确认浏览器接收到的信息实际上不是意外的4xx或5xx错误。