【发布时间】:2018-03-08 18:13:06
【问题描述】:
我正在使用 AngularJS 和 AWS S3,我正在尝试在浏览器中查看文件(.pdf、.docx、.ppt 等),但我卡住了。
我正在尝试使用 google 文档视图:
<iframe src="http://docs.google.com/gview?url=MY_AWS_S3_URL&embedded=true"></iframe>
但是我在控制台的浏览器中收到this 错误,显然这个文档的视图不起作用。
有人知道发生了什么吗?可能是 S3 权限错误,或者可能是因为 angularjs 不支持它?
编辑: 我试过这个来显示 .pdf 文件,它可以工作,但只适用于 .pdf 文件。
<object width="400" height="500" type="application/pdf" data="your_url" id="pdf_content">
<p>ERROR!!</p>
</object>
【问题讨论】:
-
是否需要 url-escape (percent-encode)
MY_AWS_S3_URL? -
@Michael-sqlbot 我没看懂答案
-
第一个
?之后的URL 部分称为查询字符串。您将一个 URL (S3) 嵌入到另一个 URL (google docs) 中,这通常意味着必须使用 URL-escaping/percent-encoding 对内部 URL 中的某些字符进行转义,以避免出现歧义,例如使用类似EncodeURIComponent的东西。您在构建 Google Docs URL 时是否对 S3 URL 执行此操作?如果没有,可能需要它。 -
@Michael-sqlbot 太好了,现在我可以在浏览器中查看它,但它仍然隐藏在 html 中,显示与我发布的相同错误,现在它看起来更多来自 AngularJS因为这个:“错误:$sce:insecurl 对来自不受信任源的资源的处理被阻止”
标签: html angularjs amazon-web-services pdf amazon-s3