使用Firebase动态链接生成的图像链接在浏览器中不起作用



我使用Firebase动态链接REST API生成短链接。
如果我将该链接粘贴到浏览器中,它会重定向并加载相应的图像。但是当我使用相同的链接在<img;标签在我的网页它失败了。>
我创建了一个示例(下面的codesandbox链接)试图加载相同的图像。我放了两个图像标签,一个带bit。一个是由firebase动态链接生成器生成的。钻头。链接加载良好

示例代码:https://codesandbox.io/s/using-img-tag-forked-ufnd31?file=/index.html

图片短链接示例:https://files.flux.chat/vs4fy3cY7s1aMnS57

Create dynamic link payload
URL : https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=WEB_API_KEY
BODY : {
"dynamicLinkInfo": {
"domainUriPrefix": "https://files.flux.chat",
"link": "https://firebasestorage.googleapis.com/v0/b/fluxchathq.appspot.com/o/business%2F5Nmu0449tlNVWVdOpo8h%2Fincoming%2FNA?generation=1654498929454543&alt=media&token=664c135f-48f3-4de8-8ba7-d75ca3a5362f",
"navigationInfo": {
"enableForcedRedirect": true
}
},
"suffix": {
"option": "UNGUESSABLE"
}
}

HTML代码

<!DOCTYPE html>
<html>
<head>
<title>Parcel Sandbox</title>
<meta charset="UTF-8" />
</head>
<body>
<div>
<img class="image" src="https://files.flux.chat/vs4fy3cY7s1aMnS57" />
<img class="image" src="https://bitly/3Lr8Bq1" />
</div>
</body>
</html>

我没有这方面的经验,但我认为缩短的url不能作为图像源——它们不直接指向图像,而是重定向到图像。

这是一个似乎相关的旧答案:https://stackoverflow.com/a/27062627/954986

除非您拥有想要缩短URL的域名,否则这是不可能的。例如,要做到这一点,您需要拥有(或有权访问)网站bit.ly。

。ly不托管您的视频或图像,它只重定向到真正的URL,当你点击链接。

[…]

您将看到您的图像不在代码中。它只会重定向到包含你的图片的页面。

也许你可以在javascript中做一个XHR请求,看看它是否返回一个3**状态与其他一些位置,并使用它作为图像的源?(edit:短链接没有启用CORS,所以这可能不起作用)

我刚刚用curl进行了测试(好吧,http要好得多),您提供的示例短链接给出了302,Location响应头是实际图像。

编辑我测试了你的沙盒和通量。聊天图像源显示了在浏览器控制台中导致403 Forbidden状态码的GET请求。也许是因为它是从localhost调用的?但是firebase看到了一些它不喜欢的请求(可能是本地主机,可能是图像源,可能…?),这阻止了它加载。

对不起,我没有更具体的消息给你,绝对是一个奇怪的问题。

相关内容

  • 没有找到相关文章

最新更新