javascript - Angular
我如何在代码中获取重定向后的URL?
在一个 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?
我已经尝试过的:
我通过 <img [src]="someFunctionReturningURL(t)" #t> 将 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,而不是它实际被重定向到的链接!
答案#1
你可以使用 fetch 方法获取重定向的 URL,然后将其设置到 src 属性上:
fetch("https://source.unsplash.com/1600x900/?facebook")
.then(res => {
if (res.url) {
this.imageSrc = res.url;
console.log(this.imageSrc);
}
});
在 codesandbox 上的示例
