使用 Angular 和 Phonegap,我正在尝试加载位于远程服务器上但遇到问题的视频。在我的 JSON 中,URL 是作为纯 HTTP URL 输入的。
"src" : "http://www.somesite.com/myvideo.mp4"
我的视频模板
<video controls poster="img/poster.png"> <source ng-src="{{object.src}}" type="video/mp4"/> </video>
我的所有其他数据都已加载,但是当我查看控制台时,出现此错误:
Error: [$interpolate:interr] Can't interpolate: {{object.src}} Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy. URL
我尝试添加$compileProvider我的配置设置,但它没有解决我的问题。
$compileProvider
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel):/);
这是唯一对我有用的解决方案:
var app = angular.module('plunker', ['ngSanitize']); app.controller('MainCtrl', function($scope, $sce) { $scope.trustSrc = function(src) { return $sce.trustAsResourceUrl(src); } $scope.movie = {src:"http://www.youtube.com/embed/Lx7ycjC8qjE", title:"Egghead.io AngularJS Binding"}; });
然后在 iframe 中:
<iframe class="youtube-player" type="text/html" width="640" height="385" ng-src="{{trustSrc(movie.src)}}" allowfullscreen frameborder="0"> </iframe>
http://plnkr.co/edit/tYq22VjwB10WmytQO9Pb?p=preview