如何从跨源站点中框架的谷歌应用脚本 webapp 访问相机?
Posted
技术标签:
【中文标题】如何从跨源站点中框架的谷歌应用脚本 webapp 访问相机?【英文标题】:How to access camera from google apps script webapp framed in a cross origin site? 【发布时间】:2021-11-26 02:22:59 【问题描述】:我的页面上有一个 iframe。 iframe src 是一个 src="https://script.google.com/macros/s/......." 的 google webapp。
该页面是一个表单,它适用于相机和地理定位。 我的问题是,当我不加框直接访问表单时,它可以正常工作,但是当我为应用程序脚本 web 应用程序加框时,表单可以工作,但相机和地理却不行。
我的意思是:如果我使用https://script.google.com/macros/s/...。形式完美!
但是如果我在我的网页上使用 iframe,相机和地理就不起作用了!
<iframe src="https://script.google.com/macros/s/......."></iframe>
我尝试添加allow="camera; microphone
和其他属性,但仍然没有工作。
我该如何解决?
这里是我的链接 框架: iframe 允许="相机 *; 麦克风 *" src="https://script.google.com/macros/s/AKfycbzsaOlh4Gp2EJmdyQ9cvkYmezTCsg_9wd6ILjdwTe6MRgNBDitcE5Hijr2sNeBknMvp/exec" frameborder="0" margin margin id="cultos" name="cultos">/iframe
链接脚本 https://script.google.com/macros/s/AKfycbzsaOlh4Gp2EJmdyQ9cvkYmezTCsg_9wd6ILjdwTe6MRgNBDitcE5Hijr2sNeBknMvp/exec 注意:链接脚本工作 100%,但在 iframe 上没有工作相机和地理定位
【问题讨论】:
浏览器控制台或开发工具上有任何错误/调试日志吗? 不,只是 GET xxxxx/favicon.ico 404,没有图标 表单在 url 脚本和 iframe 上工作完美,但相机和地理在 iframe 上不起作用 我有这个错误 访问 XMLHttpRequest at 'script.google.com/wardeninit?_reqid=80444&rt=j' from origin 'null' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否 'Access-Control -Allow-Origin' 标头出现在请求的资源上。 还有这个 1453801117-warden_bin_i18n_warden__es.js:157 POST script.google.com/wardeninit?_reqid=80444&rt=j net::ERR_FAILED 【参考方案1】:由于 Google Apps 脚本网络应用是 nested iframe with different origins,您可能需要添加特定的 allowlist
along with allow
.。这是因为默认allow
的allowlist
默认为src
。因此它不允许嵌套的跨源 iframe。试试
<iframe src="https://script.google.com/macros/s/......."
allow="camera https://[SCRIPT_ID].googleusercontent.com"></iframe>
这里,SCRIPT_ID
可以通过根据结构here 检查“#1 Outer sandbox iframe”html 结构找到。或者不太安全,您可以使用*
允许所有来源,
<iframe src="https://script.google.com/macros/s/......."
allow="camera *"></iframe>
【讨论】:
谢谢测试它, @AsambleaCristiana 有用吗?添加*
work?(allow="camera *"
)
不,如果你能帮助我,这里是我的链接!永远谢谢!,asambleacristianamendoza.com/index.php/inscripciones-maipu 这是嵌入代码 这是我的应用链接script.google.com/macros/s/…
如果你使用 url 链接工作 100%!,但如果你使用 throught iframe 没有工作相机和地理定位
@AsambleaCristiana 这是在 chrome 中吗?以上是关于如何从跨源站点中框架的谷歌应用脚本 webapp 访问相机?的主要内容,如果未能解决你的问题,请参考以下文章