嵌入youtube视频会导致CORS错误

时间:2017-04-26 10:18:10

标签: angularjs ionic-framework youtube

我试图在我的离子应用中嵌入视频,但是在加载页面时出现错误:

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" />

我该如何解决这个问题?我错过了什么吗?

2 个答案:

答案 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中