Javascript iframe中的Pdf blob url不会加载到手机和平板电脑上,但在所有主要的桌面浏览器上都可以正常工作
所以我有一个pdf的url,我必须在我的React应用程序的UI中显示它 pdf url看起来像这样Javascript iframe中的Pdf blob url不会加载到手机和平板电脑上,但在所有主要的桌面浏览器上都可以正常工作,javascript,html,reactjs,pdf,iframe,Javascript,Html,Reactjs,Pdf,Iframe,所以我有一个pdf的url,我必须在我的React应用程序的UI中显示它 pdf url看起来像这样 constpdfurl=`${config.apirl}/v1/resumes/${profile.key}/pdf` 在iframe上设置src等于此url时,控制台中会抛出x-frame-options错误,并且未加载pdf 因此,我必须通过进行api调用并从中创建对象URL来获取pdf文件 const fetchPdfContent = async () => { const
constpdfurl=`${config.apirl}/v1/resumes/${profile.key}/pdf`代码>
在iframe上设置src
等于此url时,控制台中会抛出x-frame-options
错误,并且未加载pdf
因此,我必须通过进行api调用并从中创建对象URL来获取pdf文件
const fetchPdfContent = async () => {
const state = getState();
try {
setIsLoading(true);
const response = await fetch(pdfURL, {
method: 'GET',
headers: {
// ... pass access token here
},
});
const blob = await response.blob();
const src = URL.createObjectURL(new Blob([blob], { type: 'application/pdf' }));
setPdfContent(src);
} catch (error) {
// show notification with error message
} finally {
setIsLoading(false);
}
};
然后在iframe的src中设置pdfContent
<iframe
title={caption}
src={`${pdfContent}#toolbar=0`}
/>
在所有主要的桌面浏览器上都可以使用这种方法
这就是它在桌面浏览器UI上的外观
但手机和平板电脑上的任何浏览器都不会加载相同的pdf blob url,并且控制台中没有错误
我一直在互联网上寻找解决方案,但找不到。我发现了相似的,但没有用
由于后端的一些限制,我无法使用任何自定义包来呈现PDF,因此只能使用iframe
任何帮助都将不胜感激