AngularJs 未加载外部资源 [英] External resource not being loaded by AngularJs
问题描述
使用 Angular 和 Phonegap,我尝试加载远程服务器上的视频,但遇到了问题.在我的 JSON 中,URL 作为普通 HTTP URL 输入.
Using Angular and Phonegap, I'm trying to load a video that is on a remote server but came across an issue. In my JSON, the URL is entered as a plain HTTP URL.
"src" : "http://www.somesite.com/myvideo.mp4"
我的视频模板
<video controls poster="img/poster.png">
<source ng-src="{{object.src}}" type="video/mp4"/>
</video>
我的所有其他数据都已加载,但是当我查看控制台时,出现此错误:
All my other data gets loaded but when I look my console, I get this error:
Error: [$interpolate:interr] Can't interpolate: {{object.src}}
Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy. URL
我尝试在我的配置设置中添加 $compileProvider
但它没有解决我的问题.
I tried in adding $compileProvider
in my config set up but it did not resolve my issue.
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel):/);
我看到了这篇关于跨域问题的帖子s 但我不确定如何解决这个问题或我应该朝哪个方向发展.有什么想法吗?任何帮助表示赞赏
I saw this post about cross domain issues but I'm not sure how to resolve this or what direction I should go in. Any ideas? Any help is appreciated
推荐答案
这是唯一对我有用的解决方案:
This is the only solution that worked for me:
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 中:
Then in an 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
这篇关于AngularJs 未加载外部资源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!