2016-06-10 127 views
0

我有以下的Java代码:获取URL重定向后,从JavaScript

 URL url = new URL(destUrl); 
     HttpURLConnection c = (HttpURLConnection) url.openConnection(); 
     c.setRequestMethod("GET"); 
     c.setInstanceFollowRedirects(false); 
     c.connect(); 
     String location = c.getHeaderField("Location"); 
     c.disconnect(); 

destUrl做一个重定向,我得到它重定向到并放入字符串位置的URL。这是真正的重点......我只需要知道重定向到的URL。

上面的代码工作的很好,但我现在需要将它移植到JavaScript或jQuery中,以使用我正在编写的Chrome扩展。我尝试了很多方法,但迄今为止还没有成功。

完成此操作的最佳方法是什么?

回答

0

jQuery中它会是这个样子:

$.ajax({ 
    type: "GET", 
    url: destURL, 
    success: function(data, status, xhr) { 
     var location = xhr.getResponseHeader('Location'); 
    } 
}); 

或者类似的规定。

+0

谢谢。我尝试了一种非常类似的方法,但是在请求的资源上出现了“否”Access-Control-Allow-Origin'标题。“错误。我试着将它更改为jsonp,因为这是一个推荐的解决方法,但是会给出错误Unexpected token <(可能是因为它不是json,它是html)。 – Nullqwerty

+0

好吧,通过在该域的清单中放置权限来解决问题。但xhr的“位置”为空。其他标题在那里。 – Nullqwerty

+0

进一步的研究表明,原因位置为空是因为发生了重定向并且在该条件下位置为空。任何其他想法? – Nullqwerty