0

假设http://example.com/js/script.js针对某个相对 URL 触发 AJAX 请求,我如何获得最终被请求的绝对 URL?

例如,如果我向我提出请求image.pnghttp://example.com/js/script.js我希望得到 back http://example.com/js/image.png。但是,如果我/image.png从同一个 URL 请求,我希望返回http://example.com/image.png.

这个问题很棘手,原因有两个:

  1. 我不相信可以从其中获取脚本的 URL。 更新:我错误地认为 AJAX 请求是相对于脚本位置发出的。事实证明,它们是相对于 发行的location.href。这简化了情况。
  2. 我不相信这会XMLHttpRequest暴露请求 URL,更不用说它的绝对形式了。

有任何想法吗?

4

1 回答 1

1

我不相信可以从其中获取脚本的 URL。

为此,只需使用location.href

从相对地址获取绝对网址的快速破解方法可能是:

function getAbsoluteURL(relative) {
    var a = document.createElement('a');
    a.href = relative;
    return a.href;
}

根据这个问题,它不能在 Ie6 上工作,但这真的重要吗?

于 2012-12-26T07:38:04.190 回答