JavaScript ping一个URL并获取重定向的URL

时间:2017-02-21 15:27:58

标签: javascript angularjs redirect

在我们的AngularJS应用程序中,我有一个图像URL,如:

http://example.com/images/get/785746378

问题是这会将我重定向到另一个阻止的网址:

http://another-example.com/images/f/gs/s/your-image.jpg

因此图像不起作用,但如果我更换域,那么它就是:

http://example.com/images/f/gs/s/your-image.jpg

工作正常。

因此,我希望能够在JavaScript中ping网址并找出重定向的网址,并更改网址,以便在将其添加到我的img src

之前进行更改

2 个答案:

答案 0 :(得分:0)

这应该可以正常工作:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(response) {
  var xhr = response.target;
  if (xhr.readyState === 4 && xhr.status === 302) {
    var redirectURL = xhr.location;
    var imageURL = redirectURL.replace('http://another-example','http://example');
    // change your image src here by imageURL
  }
}
xhr.open('GET', 'http://example.com/images/get/785746378', true);
xhr.send(null);

答案 1 :(得分:0)

从您的帖子中不清楚您是如何请求图像的。假设您使用AJAX / $ HTTP请求它:

您可以发送HEAD原始网址请求。如果服务器上允许HTTP HEAD请求,您将在响应头中获得带有新location的HTTP 302响应。您可以对此location执行必要的操作,并发送GET请求获取图片的新网址。