首页 > 解决方案 > 如何从 3xx 获取响应中读取重定向 URL?

问题描述

我正在尝试从 3xx 重定向读取重定向 URL。(我打算只阅读location: https://myredirectedurl.com标题并自己在 JS 中处理它。但是当我发出获取请求时,我收到了

CORS 策略已阻止从源“ https://localhost:8000 ”访问“ https://myredirectedurl.com ”(从“ https://localhost:8000/somepath ”重定向)获取:无“访问-请求的资源上存在 Control-Allow-Origin' 标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我知道为什么会出现此错误,并且我确实了解 CORS 的工作原理。但是我不希望 fetch 函数执行重定向。

我在这个 stackoverflow 问题上读到,redirect: 'manual'如果设置了该属性可能会有所帮助。这确实阻止了 CORS 错误的出现并停止了重定向的请求,但是我现在无法读取location: https://myredirectedurl.com标头。我希望阅读此内容,以便我可以根据我的应用程序逻辑处理重定向,然后可能使用window.location.replace

标签: javascriptheaderxmlhttprequestfetch

解决方案


我只是想更新一下,以防有人从搜索引擎中绊倒。这不可能。浏览器在客户端 JavaScript 甚至可以与之交互之前就透明地重定向。处理此问题的推荐方法是使用 som 2xx 状态进行重定向,然后从标头或内容中读取重定向 URL。


推荐阅读