跟随重定向来处理图片HTTP请求,客户端

4
你知道这个链接:
http://media.photobucket.com/image/graphics/PennilessTeacher/Graphics/monster.jpg?o=8

重定向到以下链接:

http://i1133.photobucket.com/albums/m581/PennilessTeacher/Graphics/monster.jpg

好的,假设我有:

<img src='http://media.photobucket.com/image/graphics/PennilessTeacher/Graphics/monster.jpg?o=8' width='blah' height = 'blah'/>

请求图片URL将被重定向,我想知道最终的URL。所以,在这种情况下,它应该是 http://i1133.photobucket.com/albums/m581/PennilessTeacher/Graphics/monster.jpg
之前我曾经问过一个关于获取跨域图像请求状态码的问题,这似乎是不可能的,除非有一个服务器端脚本执行 http 请求。
在这里,服务器端脚本是行不通的。我需要在客户端处理请求,因为一些网站图片元素指向的特定Cookie需要在客户端保存,而我显然无法访问它们,因为它们属于完全不同的域。如果这有任何意义...
任何客户端语言都可以。无论我是否了解它。
建议有吗?还是我完全被卡住了?

为什么你不能将这些 cookie 传递给你的服务器端脚本,并让它跟随重定向?它们是否特定于会话(因此依赖于来自您的 IP)?即使在页面加载图像时,您也可以使用 AJAX 来完成此操作。 - Brad
但是那些 cookie 不属于我(我的域名)@Brad。所以浏览器不会让我玩它们 :( - user849137
啊,我现在明白了。是的,那样行不通。 - Brad
我会说 xmlHttpRequest,但很确定它不支持跨域请求。 - Raiden
@Raiden,AJAX 也能透明地跟随重定向。 - Brad
2个回答

2

使用客户端脚本无法获取该信息。DOM中唯一的信息是最初请求的URI。

(如果可能的话,信息可能会泄漏。例如,如果http://example.com/me重定向到http://example.com/users/username并将Alice的用户名暴露在Bob的网站上供Malory使用(当Alice访问该网站时带有<img src="http://example.com/me">)或者它可能重定向到http://cdn.example.com/alices/private/content/protected/by/time/limited/key/h4io3foiu32if390f490并让Malory访问Alice的私人内容)。


哎呀,这太糟糕了。在客户端是否有任何方式可以跟随跨域请求的重定向?我知道 JSONP,但我正在操作的网站不支持它们。 - user849137
跟进吗?是的。但将其URI暴露给网站所有者 - 绝对不行。 - Quentin

0
我不确定,但这可能是一种解决方案,甚至是您要求的东西...假设您知道 URL ... 创建一个服务器端文件(在我的情况下为 .php),从客户端侧(使用 Ajax 或其他方式)获取 URL 并使用 CURL 获取图像站点...然后查找 id = fullSizedImage 的 img 标记并获取其 src...正如我所说的,我不确定这是否是您正在寻求的内容...

需要通过客户端完成,因为目标站点需要特定的 cookie 才能加载图像。这些 cookie 存储在客户端浏览器上的不同域中,所以我也无法访问这些 cookie。这就是为什么 http 请求需要通过客户端处理的原因。 - user849137

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接