如何在 XMLHttpRequest 中获取响应 url?

IT技术 javascript ajax xmlhttprequest response
2021-03-12 02:13:41

有一个页面(url),我通过 XMLHttpRequest 请求它,但我没有从请求的 url 得到响应,它正在将请求定向到另一个页面,

请求 --- > page.php
从 > directedpage.php得到响应

问题是我怎样才能得到响应网址?(示例中的directedpage.php)

1个回答

最终 URL(在遵循所有重定向之后)在实例responseURL属性可用XMLHttpRequest此功能是新功能,仅在2014 年 9 月[ref] 的Firefox 32稳定版2014 年 8 月的Chrome 37.0.2031.0稳定版[ref](可能还有 Opera 24)中受支持。responseURLIE 11 或 Safari 7 及更旧的浏览器(尚)不支持。对于这些浏览器,之前的答案仍然成立:

XMLHttpRequest自动跟随重定向,而不将提供的 URL 保存在属性中。Location报头可以既不通过检索.getResponseHeader()

参考:

@traxium 无法获取responseURL被阻止的跨域请求。如果服务器没有使用预期的 CORS 响应标头进行响应。然后浏览器必须假设服务器不愿意自愿提供敏感信息,因此它不会将重定向目标泄漏给脚本。
2021-04-18 02:13:41
@user2284570 最后一个 A 的 URL。
2021-04-21 02:13:41
@RobW:我不明白,如果我有这个A=302—B=302—>C=302—>A=200什么 responseURL 会返回?C 或 A 的 ᴜʀʟ ?
2021-04-24 02:13:41
好的,但是,有人知道为什么吗?安全 ?响应 url 应该可以使用哪种攻击?(仅当响应 url 与原始 url 位于同一来源时才给出响应 url)
2021-04-25 02:13:41
@JulienPalar规范要求必须透明地遵循重定向。
2021-04-26 02:13:41