Javascript 角度<;img[src]=";someURL"&燃气轮机;如何在代码中访问重定向的URL?

Javascript 角度<;img[src]=";someURL"&燃气轮机;如何在代码中访问重定向的URL?,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,在Angular应用程序中,我将图像src设置为自定义URL,例如,https://source.unsplash.com/1600x900/?facebook,这将被重定向到其服务器上托管的某些映像 在某些情况下,结果URL将重定向到错误图像,例如,https://source.unsplash.com/1600x900/?roblox将重定向到https://images.unsplash.com/source-404?fit=crop&fm=jpg&h=800&q=60&w=1200每次一

在Angular应用程序中,我将图像src设置为自定义URL,例如,
https://source.unsplash.com/1600x900/?facebook
,这将被重定向到其服务器上托管的某些映像

在某些情况下,结果URL将重定向到错误图像,例如,
https://source.unsplash.com/1600x900/?roblox
将重定向到
https://images.unsplash.com/source-404?fit=crop&fm=jpg&h=800&q=60&w=1200
每次一个术语没有好结果时(即在本例中,roblox是一个坏术语)

如何在代码中访问此重定向URL

我已经尝试过的:

我通过
将HTMLInputElement传递给我的TypeScript。
someFunctionReturningURL(t)
中,我调用
setTimeout
(以确保
img
已完全加载
src
URL)并测试
t.src==”https://images.unsplash.com/source-404?fit=crop&fm=jpg&h=800&q=60&w=1200"
但问题是
t.src
仍然保留原始的未定向链接
https://source.unsplash.com/1600x900/?roblox
而不是它实际重定向到的链接

您可以使用fetch方法获取重定向的url,然后在src属性上设置:

fetch("https://source.unsplash.com/1600x900/?facebook")
  .then(res => {
    if (res.url) {
      this.imageSrc = res.url;
      console.log(this.imageSrc);
    }
  });

被重定向的图像请求不会导致DOM元素的
src
属性被更新。您可以手动请求url并检查重定向的位置,然后使用最终url设置src。我尝试发送的链接可能重复,对于我的具体情况来说,这是一个不错的黑客攻击,因为在一个坏的URL上,它会重定向到一个1200宽的图像,而不是我要求的1600宽的图像,所以我可以立即判断它是否坏。但是下面的答案更通用,并且得到了实际的重定向URL。