Hou*_*man 4 javascript jcrop angularjs angularjs-directive
我正在使用此指令将jCrop与Angular一起使用:http://plnkr.co/edit/Z2IQX8s9UK6wQ1hS4asz?p = preview
当我加载一个值时src,我收到此错误:
无法插值:{{profileImg}}错误:[$ sce:insecurl]
然后它将我链接到一个页面,上面写着:
$ sceDelegate策略不允许阻止从url加载资源.
我的HTML是这样的:
<img-cropped src={{profileImg}} selected='selected(cords)'/>
Run Code Online (Sandbox Code Playgroud)
当我更改$scope.profileImg为我的图像的网址时,会发生此错误.
我正在链接到S3,在那里我从中得到了价值profileImg.我相信这个来源,那么我怎么能告诉angular这个来源是否足以让这个指令有效?
如果我硬编码src为我的形象,我不会遇到这个问题.
我试图用$ sce来信任这个网址.
我的控制器:
cmsApp.controller('PresentationCtrl',function($scope, $upload, all, $sce){
var socket = io.connect('https://xxxxxx.xxxxxxxxxxxxxx.xxx:3000');
$scope.profileImg="";
$scope.uploadProfilePic = function(){
socket.removeAllListeners();
console.log(file3);
var url = 'https://xxxxxxx.xxxxxxxxxx.xxx:3000/uploadProfile?tenant=xxxxx';
$scope.upload = $upload.upload({
url:url,
data:{myObj:'test1'},
file:file3
}).progress(function(evt){
console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
}).success(function(data,status,headers,config){
$sce.trustAsUrl(data);
$scope.profileImg = data;
});
};
});
Run Code Online (Sandbox Code Playgroud)
即便如此trustAsUrl,它也会引发同样的错误.
可能是我试图从我的本地nginx服务器连接它?
我把它移到S3托管,它工作.我想要链接到的图像也在S3上.我将它移动到EC2实例上的Apache Web服务器,但它不起作用.
我使用所有的答案,ng-src而不是src,$sce.trustAsUrl(url)和$compileProvider
有时阅读有关$ sce的文档很有用
这是白名单的所有BLOB和数据的选择:图像/*网址,只是<img>标签,但有一个你可以解决这个喜欢生成一个URL>将其传递到SCE功能的另一种方式,它会被列入白名单.喜欢@NuclearGhost说
app.config(["$compileProvider" function($compileProvider) {
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(blob:|data:image)/);
}]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10549 次 |
| 最近记录: |