我试图在我的离子应用中嵌入视频,但是在加载页面时出现错误:
GET https://redirector.googlevideo.com/videoplayback?pcm2cms=yes&key=yt6&ei=5HE…QBGK&c=WEB&cver=1.20170425&cmo=pf=1&range=0-622&rn=15&playerretry=3&rbuf=0 404 (Not Found)
XMLHttpRequest cannot load https://redirector.googlevideo.com/videoplayback?pcm2cms=yes&key=yt6&ei=5HE…QBGK&c=WEB&cver=1.20170425&cmo=pf=1&range=0-622&rn=15&playerretry=3&rbuf=0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.youtube.com' is therefore not allowed access. The response had HTTP status code 404.
这是我的HTML代码:
<iframe width="420" height="315" src="{{video}}" ></iframe>
这里是controller.js代码:
$scope.video = "https://www.youtube.com/embed/RP-mvJE9EQM";
我在app.js文件中添加了这个:
$sceDelegateProvider.resourceUrlWhitelist(['self', new RegExp('^(http[s]?):\/\/(w{3}.)?youtube\.com/.+$')]);
这在我的config.xml文件中:
<allow-navigation href="*.youtube.com" />
<preference name="AllowInlineMediaPlayback" value="true" />
我该如何解决这个问题?我错过了什么吗?
答案 0 :(得分:0)
尝试使用http代替https。 另外,尝试将此行放在index.html
中<head>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src * data: 'unsafe-inline'; connect-src * 'unsafe-inline'; frame-src *;">
</head>
使用它时要小心,因为它允许一切。 有关内容安全策略的更多信息:
https://developers.google.com/web/fundamentals/security/csp/
希望这有帮助。
答案 1 :(得分:0)
我补充说:
<access origin="*" />
在config.xml中