获取XMLHttpRequest请求的绝对URL?

时间:2012-12-26 07:23:43

标签: javascript

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

例如,如果我从image.png请求http://example.com/js/script.js,我希望得到http://example.com/js/image.png。但是,如果我从同一网址请求/image.png,我希望能够返回http://example.com/image.png

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

  1. 我不相信可以从里面获取脚本的URL。 UPDATE :我错误地认为相对于脚本位置发出了AJAX请求。事实证明,它们是相对于location.href发布的。这简化了这种情况。
  2. 我不相信XMLHttpRequest会公开请求网址,更不用说它的绝对形式了。
  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

我不相信可以从里面获取脚本网址。

为此,只需使用location.href

即可

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

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

根据this question,它不能用于Ie6,但这真的很重要吗?