我有一个youtube的网址:
<iframe class="embed-responsive-item" ng-src="https://www.youtube.com/embed/s7gJ74ARN84" allowfullscreen=""></iframe>
如果我在我的本地html文件中使用它,它可以很好地运行。但是,当我在phonegap ios app html页面中粘贴相同内容并在ios模拟器中运行时,它会显示以下错误,就像我点击视频一样:
Blocked a frame with origin "https://www.youtube.com" from accessing a frame with origin "file://".
The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "file". Protocols must match.
解:
它不是在模拟器中工作,而是在移动设备上工作,这是我的最终目标。
@Manish,因为你已经处理过CORS问题,所以你得到的错误说:
请求访问的帧具有“https”协议,被访问的帧具有“文件”协议。协议必须匹配。
既然它不是CORS,你有没有摆脱iframe?如果这有效,也许你需要的是一个隐藏的<div>
。
杰西
确保你已经安装了cordova-plugin-whitelist
在config.xml上添加此行
<!-- Whitelist the domain -->
<allow-navigation href="https://*youtube.com/*"/>
如果要将访问权限列入白名单,则可能需要使用此选项 但是如果您的应用程序可以通过脚本注入,那么您必须小心,这将是一个安全漏洞
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
嘿,这只是一个非常小的问题
你的链接是这个=>“https://www.youtube.com/embed/s7gJ74ARN84”
但你只需将其改为
这个链接“//www.youtube.com/embed/s7gJ74ARN84”
请记住,当您尝试在站点中加载安全内容时,只需从链接中删除协议即可