8

我有一个 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.

解决方案:

它不是在模拟器中工作,而是在移动设备中工作,这是我的最终目标。

4

4 回答 4

0

@马尼什,

看来你有CORS问题。您可以添加到您的config.xml <access origin="*"/>中。

杰西

于 2015-05-19T03:27:33.473 回答
0

@Manish,由于您已经处理了 CORS 问题,因此您得到的错误是:

请求访问的帧具有“https”协议,被访问的帧具有“文件”协议。协议必须匹配。

既然不是CORS,你有没有摆脱iframe?如果可行,也许您需要的是一个隐藏的<div>.

杰西

于 2015-05-19T03:55:37.987 回答
0

确保您已安装cordova-plugin-whitelist

并在config.xml添加这一行

<!-- Whitelist the domain -->
<allow-navigation href="https://*youtube.com/*"/>

如果您想将所有 URL 的访问列入白名单,您可能需要使用此功能
但是如果您的应用程序可以通过脚本注入,则必须小心,这将是一个安全漏洞

<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
于 2018-07-31T02:49:09.893 回答
-3

嘿,这只是一个很小的问题

你的链接是这个=>“ https://www.youtube.com/embed/s7gJ74ARN84

但是您只需将其更改为

此链接“//www.youtube.com/embed/s7gJ74ARN84”

请记住,当您尝试在您的站点中加载安全内容时,只需从链接中删除协议

于 2015-05-21T05:02:43.450 回答