背景故事:
目前,我们正在从GET API获取图像
Accept: 'application/octet-stream',
responseType: 'blob'
我们使用以下方法在UI上显示图像。
let imageUrl = URL.createObjectURL(data);
现在这种方式,它在Chrome(Windows和Mac)中几乎所有的地方都工作得很好,但在Safari中的一个地方,它会给出一个错误响应,如。
“回应不是Blob。”
在调试时,我们发现我们从Angular得到了这个错误。
case 'blob':
return res$.pipe(map((res) => {
// Validate that the body is a Blob.
if (res.body !== null && !(res.body instanceof Blob)) {
throw new Error('Response is not a Blob.');
}
return res.body;
}));
当我检查res.body instanceof Blob // true in chrome but in safari its false
接下来我尝试在Safari中调试
res.body.constuctor.name where I get a response like "Blob"
所以我的问题是
我怎么知道instanceof value的输出是什么?
1条答案
按热度按时间okxuctiv1#
使用此选项
这里的关键是观察:'response'。Safari浏览器或iOS有时会很混乱,但无论您使用哪种浏览器,此方法都可以正常工作。仅在处理图像时使用此方法