【问题标题】:How to get response url in XMLHttpRequest?如何在 XMLHttpRequest 中获取响应 url?
【发布时间】:2011-12-24 18:30:21
【问题描述】:

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

请求 --- > page.php
从 > directedpage.php

获得响应

问题是如何获得响应网址? (以directedpage.php为例)

【问题讨论】:

    标签: javascript ajax xmlhttprequest response


    【解决方案1】:

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

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

    参考资料:

    【讨论】:

    • 好的,但是,有人知道为什么吗?安全 ?响应 url 应该可以使用哪种攻击? (仅当响应 url 与原始 url 位于同一来源时才提供响应 url)
    • @JulienPalard The specification 要求必须透明地遵循重定向。
    • @RobW :我不明白,如果我有这个A=302—B=302—>C=302—>A=200。什么 responseURL 会返回? C还是A的ᴜʀʟ?
    • @user2284570 最后一个A的URL。
    • @traxium 对于被阻止的跨域请求,无法获取responseURL。如果服务器未使用预期的 CORS 响应标头进行响应。那么浏览器必须假设服务器不愿意主动提供敏感信息,因此它不会将重定向目标泄露给脚本。
    猜你喜欢
    • 2019-09-28
    • 1970-01-01
    • 2014-03-10
    • 2011-03-03
    相关资源
    最近更新 更多